불연속 Galerkin / Poisson / Fenics


10

불연속 Galerkin 방법 (DG)과 다음과 같은 이산화를 사용하여 2D 푸 아송 방정식을 풀려고합니다 (PNG 파일이 있지만 업로드 할 수 없습니다, 죄송합니다).

방정식 :

(κ)+에프=0

새로운 방정식 :

=κ=에프

숫자에 약한 형태의 플럭스 TQ를 :^^

V=(κ)V+κ^에스VV=V에프V+^V에스

수치 플럭스 (IP 법)

^={}11[]^={}

{}=0.5(++)[]=+++

방정식을 풀기 위해 간단한 fenics python 스크립트를 작성했습니다. 내가 얻는 해결책이 좋지 않습니다. DG 방법에 익숙한 사람이 아래 스크립트를 빠르게 살펴보고 내가 뭘 잘못하고 있는지 말해 주시면 정말 감사하겠습니다.

스크립트에 추가 한 연속 galerkin 공식은 훌륭한 솔루션을 제공합니다.

많은 감사드립니다.

from dolfin import *

method = "DG" # CG / DG

# Create mesh and define function space
mesh = UnitSquare(32, 32)
V_q = VectorFunctionSpace(mesh, method, 2)
V_T = FunctionSpace (mesh, method, 1)
W = V_q * V_T

# Define test and trial functions
(q, T) = TrialFunctions(W)
(w, v) = TestFunctions(W)

# Define mehs quantities: normal component, mesh size
n = FacetNormal(mesh)

# define right-hand side
f = Expression("500.0*exp(-(pow(x[0] - 0.5, 2) + pow(x[1] - 0.5, 2)) / 0.02)")

# Define parameters
kappa = 1.0

# Define variational problem
if method == 'CG':
  a = dot(q,w)*dx \
       + T*div(kappa*w)*dx \
       + div(q)*v*dx

elif method == 'DG':
  #modele = "IP"
  C11 = 1.

  a = dot(q,w)*dx + T*div(kappa*w)*dx \
      - kappa*avg(T)*dot(n('-'),w('-'))*dS \
                                           \
      + dot(q,grad(v))*dx \
      - dot( avg(grad(T)) - C11 * jump(T,n) ,n('-'))*v('-')*dS

L = -v*f*dx

# Compute solution
qT = Function(W)
solve(a == L, qT)

# Project solution to piecewise linears
(q , T) = qT.split()

# Save solution to file
file = File("poisson.pvd")
file << T

# Plot solution
plot(T); plot(q)
interactive()

답변:


10

케이h케이케이케이ϕ케이에스=Γ[]{ϕ}에스+Γ0{}[ϕ]에스

ΓΓ0

케이h케이^케이V케이에스=Γ0^[V]에스+Ω^V에스케이h케이케이κ^에스=Γ[]κ^에스

이로 인해 코드가 다음과 같이 수정됩니다.

C11 = 1.
qhat = avg(grad(T)) - C11 * kappa*jump(T,n)
qhatbnd = grad(T) - C11 * kappa*T*n

a = dot(q,w)*dx + T*div(kappa*w)*dx \
  - kappa*avg(T)*jump(w,n)*dS \
  - kappa*T*dot(w,n)*ds \
  - dot(q,grad(v))*dx \
  + dot( qhat, jump(v,n))*dS \
  + dot( qhatbnd, v*n)*ds

나는 실제로 이것을 시도 할 시간이 없었기 때문에 가능한 사인 오류 등을 알아 두십시오. 그러나 이것이 어쨌든 도움이되기를 바랍니다.

참고 문헌 : DN Arnold, F. Brezzi, B. Cockburn, LD Marini : 타원 문제에 대한 불연속 Galerkin 방법의 통합 분석 SIAM J. Num. 애널, 39 (2002), 1749-1779


네, 정말 뭔가 빠졌습니다.
micdup

-2

네, 정말 뭔가 빠졌어요!

지금 잘 작동하고 있습니다.

도와 주셔서 감사합니다!


2
완벽을 기하기 위해 누락 된 내용과 해결 방법을 설명 할 수 있습니까?
Paul
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.