ANOTHER hp3D, ORIENTATION EMBEDDED SHAPE FUNCTIONS FOR ELEMENTS OF ALL SHAPES, AND HOW TO CODE THE PRIMAL DPG METHOD
- L. Demkowicz
- F. Fuentes, B. Keith and S. Nagaraj
ANOTHER hp 3 D , ORIENTATION EMBEDDED SHAPE FUNCTIONS FOR ELEMENTS - - PowerPoint PPT Presentation
ANOTHER hp 3 D , ORIENTATION EMBEDDED SHAPE FUNCTIONS FOR ELEMENTS OF ALL SHAPES, AND HOW TO CODE THE PRIMAL DPG METHOD L. Demkowicz F. Fuentes, B. Keith and S. Nagaraj ICES, The University of Texas at Austin ICERM Workshop on Robust
Brown U, May 11-15, 2014 How to code primal DPG? 2 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 3 / 48
∗Developed with Paolo Gatto (now at Brown) and Kyongjoo Kim (now at Sandia).
Brown U, May 11-15, 2014 How to code primal DPG? 4 / 48
◮ For multi-physics problem, one may need to support different energy spaces following the
◮ All topological nodes are defined with orientations.
Brown U, May 11-15, 2014 How to code primal DPG? 5 / 48
◮ For multi-physics problem, one may need to support different energy spaces following the
◮ All topological nodes are defined with orientations. ◮ Mesh refinement translates into an orchestrated node breaking procedure.
Brown U, May 11-15, 2014 How to code primal DPG? 5 / 48
◮ Mesh refinements are explicitly recorded in nodal trees. ◮ No need for additional search tables (e.g., hash-table) to keep track of dynamically
◮ Generic algorithms are developed to reconstruct element-to-node connectivities.
Brown U, May 11-15, 2014 How to code primal DPG? 6 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 7 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 8 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 9 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 9 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 9 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 9 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 9 / 48
∂
curl
curl
Pp ⊗ Pq ⊗ Pr ∇ − → (Pp−1 ⊗ Pq ⊗ Pr) × (Pp ⊗ Pq−1 ⊗ Pr) × (Pp ⊗ Pq ⊗ Pr−1) ∇× − → (Pp ⊗ Pq−1 ⊗ Pr−1) × (Pp−1 ⊗ Pq ⊗ Pr−1) × (Pp−1 ⊗ Pq−1 ⊗ Pr) ∇◦ − → Pp−1 ⊗ Pq−1 ⊗ Pr−1
†Refers to N´
Brown U, May 11-15, 2014 How to code primal DPG? 10 / 48
ξ 1+ζ
η 1+ζ
ζ 1+ζ
x 1−z
y 1−z
z 1−z
Wp = {u ∈ Qp,p,p p : ∇u ∈ Qp−1,p,p−1 p × Qp,p−1,p−1 p × Qp,p,p−1 p+1 } Qp = {E ∈ Qp−1,p,p−1 p+1 × Qp,p−1,p−1 p+1 × Qp,p,p−2 p+1 : ∇ × E ∈ Qp,p−1,p−1 p+2 × Qp−1,p,p−1 p+2 × Qp−1,p−1,p p+2 } Vp = {V ∈ Qp,p−1,p−1 p+2 × Qp−1,p,p−1 p+2 × Qp−1,p−1,p p+2 : ∇ · V ∈ Qp−1,p−1,p p+3 } Yp = Qp−1,p−1,p p+3
Qpqr k := { xiyj zl (1 + z)k : 0 ≤ i ≤ p, 0 ≤ j ≤ q, 0 ≤ l ≤ r }
‡Nigam, N. and Phillips, J., “High-order Conforming Finite Elements on Pyramids”, IMA
Brown U, May 11-15, 2014 How to code primal DPG? 11 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 12 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 13 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 14 / 48
§P. Gatto, L. Demkowicz, “Construction of H1-Conforming Hierarchical Shape Functions for
Brown U, May 11-15, 2014 How to code primal DPG? 15 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 15 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 16 / 48
§J. Schoeberl, J. Zaglmayr, “High order N´
Brown U, May 11-15, 2014 How to code primal DPG? 17 / 48
n(x′; t′) := ˜
n+1(x′; t′) :=
n(s′; t′) ds′
Brown U, May 11-15, 2014 How to code primal DPG? 18 / 48
λ1 λ1+λ2 , λ2 λ1+λ2 )(λ1 + λ2)n
Brown U, May 11-15, 2014 How to code primal DPG? 19 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 20 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 21 / 48
ξ 1+ζ
η 1+ζ
ζ 1+ζ
x 1−z
y 1−z
z 1−z
1+z
1−ζ
1+z
1−ζ
xy 1+z
ξη 1−ζ
1+z
1−ζ
z 1+z
Brown U, May 11-15, 2014 How to code primal DPG? 22 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 23 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 24 / 48
k+2
k+2
k+2
k+3
Brown U, May 11-15, 2014 How to code primal DPG? 25 / 48
2z
1 (1+z)3
x 1+z , z 1+z )
2 z
1 (1+z)4
x 1+z , z 1+z ) − C)(1 + z) + 3C 2
¶At a first glance, presence of non-zero z-component seems to be unnecessary. With
Brown U, May 11-15, 2014 How to code primal DPG? 26 / 48
ξ 1−ζ η 1−ζ
k+2
k+2
k+2
k+3
Brown U, May 11-15, 2014 How to code primal DPG? 27 / 48
x 1+z , z 1+z )
1−η−ζ 1−ζ
Brown U, May 11-15, 2014 How to code primal DPG? 28 / 48
◮ A logically coherent construction for elements of all shapes and the whole
◮ Small number of primitives (scaled polynomials) and a hierarchical logic
◮ Stand alone package in Fortran 90 (6k lines). ◮ Extended element-to-nodes connectivity needed, standard assembly
◮ Partial verification (reproduction of polynomials) done. ◮ Anyone interested in helping with verification ?
Brown U, May 11-15, 2014 How to code primal DPG? 29 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 30 / 48
K ∂K
h = Γh − Γ
Brown U, May 11-15, 2014 How to code primal DPG? 31 / 48
h
Brown U, May 11-15, 2014 How to code primal DPG? 32 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 33 / 48
∗∗
◮ J.H. Bramble, R.D. Lazarov, J.E. Pasciak, “A Least-squares Approach Based on a Discrete
◮ L.D., J. Gopalakrishnan. “A Class of Discontinuous Petrov-Galerkin Methods. Part II:
Brown U, May 11-15, 2014 How to code primal DPG? 34 / 48
◮ Minimum residual method: Uh ⊂ U, 1 2Buh − l2 V ′ → min uh∈Uh
∗∗
◮ J.H. Bramble, R.D. Lazarov, J.E. Pasciak, “A Least-squares Approach Based on a Discrete
◮ L.D., J. Gopalakrishnan. “A Class of Discontinuous Petrov-Galerkin Methods. Part II:
Brown U, May 11-15, 2014 How to code primal DPG? 34 / 48
◮ Minimum residual method: Uh ⊂ U, 1 2Buh − l2 V ′ → min uh∈Uh ◮ Riesz operator:
∗∗
◮ J.H. Bramble, R.D. Lazarov, J.E. Pasciak, “A Least-squares Approach Based on a Discrete
◮ L.D., J. Gopalakrishnan. “A Class of Discontinuous Petrov-Galerkin Methods. Part II:
Brown U, May 11-15, 2014 How to code primal DPG? 34 / 48
◮ Minimum residual method: Uh ⊂ U, 1 2Buh − l2 V ′ → min uh∈Uh ◮ Riesz operator:
◮ Minimum residual method reformulated: 1 2Buh − l2 V ′ = 1 2R−1 V (Buh − l)2 V → min uh∈Uh
∗∗
◮ J.H. Bramble, R.D. Lazarov, J.E. Pasciak, “A Least-squares Approach Based on a Discrete
◮ L.D., J. Gopalakrishnan. “A Class of Discontinuous Petrov-Galerkin Methods. Part II:
Brown U, May 11-15, 2014 How to code primal DPG? 34 / 48
V (Buh − l)
V Bδuh)V = 0
††W. Dahmen, Ch. Huang, Ch. Schwab, and G. Welper. “Adaptive Petrov Galerkin methods
Brown U, May 11-15, 2014 How to code primal DPG? 35 / 48
V (Buh − l)
V Bδuh)V = 0
V (Buh − l)
V Bδuh)V = 0
††W. Dahmen, Ch. Huang, Ch. Schwab, and G. Welper. “Adaptive Petrov Galerkin methods
Brown U, May 11-15, 2014 How to code primal DPG? 35 / 48
V (Buh − l)
V Bδuh)V = 0
††W. Dahmen, Ch. Huang, Ch. Schwab, and G. Welper. “Adaptive Petrov Galerkin methods
Brown U, May 11-15, 2014 How to code primal DPG? 35 / 48
V (Buh − l)
V Bδuh)V = 0
††W. Dahmen, Ch. Huang, Ch. Schwab, and G. Welper. “Adaptive Petrov Galerkin methods
Brown U, May 11-15, 2014 How to code primal DPG? 35 / 48
◮ inf-sup in the kernel - trivially satisfied ◮ LBB inf-sup condition:
˜ vh∈ ˜ Vh
‡‡J. Gopalakrishnan and W. Qiu. “An analysis of the practical DPG method”, Math. Comp.,
Brown U, May 11-15, 2014 How to code primal DPG? 36 / 48
◮ inf-sup in the kernel - trivially satisfied ◮ LBB inf-sup condition:
˜ vh∈ ˜ Vh
‡‡J. Gopalakrishnan and W. Qiu. “An analysis of the practical DPG method”, Math. Comp.,
Brown U, May 11-15, 2014 How to code primal DPG? 36 / 48
N
M
Brown U, May 11-15, 2014 How to code primal DPG? 37 / 48
1
2
1 G−1B1
1 G−1B2
2 G−1B1
2 G−1B2
1 G−1b
2 G−1b
How to code primal DPG? 38 / 48
H1(Ω)
H−1/2(Γh)
γ
wh,rh
H1(Ω) + ˆ
H−1/2(Γh)
H1(Ω)
H−1/2(Γh)
γ
v∈H1(Ωh)
Brown U, May 11-15, 2014 How to code primal DPG? 39 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 40 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 41 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 42 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 43 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 44 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 45 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 46 / 48
Brown U, May 11-15, 2014 How to code primal DPG? 47 / 48
∂x
Brown U, May 11-15, 2014 How to code primal DPG? 48 / 48
◮ Incorporation of orientations into the element shape functions routine
◮ Coding DPG within a code supporting the exact sequence elements is very
◮ With ultraweak variational formulation there is no need to construct 3D
Brown U, May 11-15, 2014 How to code primal DPG? 49 / 48