[Getdp] questions about higher order BF
Lars Rindorf
lrf at teknologisk.dk
Mon Mar 22 09:10:48 CET 2010
Hi Guillaume
These curl conforming basisfunctions are rather intricate. For a scalar Lagrangian field complete to polymomial order N the gradient will be complete to polynomial order N-1. This is not so for curl conforming basisfunctions. The basisfunctions in getdp are the so called 'Webb' basis functions.
Your function space should be something like this:
Webb 0.5: BF_Edge, order(E) = 0, order(curl(E)) = 0
Webb 1.0: BF_Edge, BF_Edge_2E, order(E) = 1, order(curl(E)) = 0
Webb 1.5: BF_Edge, BF_Edge_2E, two of [BF_Edge_3F_a, BF_Edge_3F_b, BF_Edge_3F_c], order(E) = 1, order(curl(E)) = 1
Webb 2.0: BF_Edge, BF_Edge_2E, two of [BF_Edge_3F_a, BF_Edge_3F_b, BF_Edge_3F_c], BF_Edge_4E, order(E) = 2, order(curl(E)) = 1
Do a convergence test for verification.
If you are interested take a look at Webb's original papers. Christophe also wrote a paper IEEE TRANSACTIONS ON MAGNETICS, VOL. 35, NO. 3, MAY 1999. They are also in his thesis http://geuz.org/publications/96.ulg.geuzaine.TFE.ps.gz
KR
Lars
-----Oprindelig meddelelse-----
Fra: getdp-bounces at ace20.montefiore.ulg.ac.be [mailto:getdp-bounces at ace20.montefiore.ulg.ac.be] På vegne af gdemesy at physics.utoronto.ca
Sendt: 19. marts 2010 16:01
Til: getdp at geuz.org
Emne: [Getdp] questions about higher order BF
Dear Getdp Developpers,
I've successfully solved a vector Helmholtz equation with
quasi-periodic (or Bloch) conditions in two directions with Getdp
(e.g. a crossed-grating 3D vector harmonic problem).
Now I would like to add some BF to my FunctionSpace for a faster
convergence as a function of the mesh refinement. I have some
questions about these additionnal BF (I would like to have a full
second order). Maybe I simply don't get what the X in BF_Edge_XE or
BF_Edge_XF stands for.
As far as I understand, for the curl-conforming tetrahedral element,
BF_edge, BF_edge_2E and BF_edge_2F should somehow be related to
something like :
BF_Edge : li grad(lj) ? lj grad(li)
BF_Edge_2E : grad(li lj)
BF_Edge_2F : lk lj grad(li) and lk li grad(lj)
where li is the barycentric coordinate of node i.
When I try to add BF_Edge_2F or BF_Edge_3E, I get the message "You
should never end up here!". Why?
BF_Edge_3F seems to be implemented in BF_Edge_3.cpp but I get the
message "Unknown Function for BasisFunction: BF_Edge_3F" when the
"Problem Definition is being loaded".
Finally, BF_Edge_4E is implemented, but I should first add some Basis
Functions related to faces to my set of BF, shouldn't I ?
(I am using getdp_2.0.0)
Could you please give me some explanations or references ?
Thanks a lot for you time.
Best Regards,
Guillaume Demésy
________________________________________
FunctionSpace {
{ Name Hcurl; Type Form1;
BasisFunction {
{ Name sn; NameOfCoef un; Function BF_Edge;
Support Region[Omega]; Entity EdgesOf[Omega]; }
{ Name sn2; NameOfCoef un2; Function BF_Edge_2E;
Support Region[Omega]; Entity EdgesOf[Omega]; }
// { Name sn3; NameOfCoef un3; Function BF_Edge_2F;
// Support Region[Omega]; Entity EdgesOf[Omega]; }
}
Constraint {
{ NameOfCoef un; EntityType EdgesOf ; NameOfConstraint BlochX; }
{ NameOfCoef un; EntityType EdgesOf ; NameOfConstraint BlochY; }
{ NameOfCoef un; EntityType EdgesOf ; NameOfConstraint Dirichlet; }
{ NameOfCoef un2; EntityType EdgesOf ; NameOfConstraint BlochX; }
{ NameOfCoef un2; EntityType EdgesOf ; NameOfConstraint BlochY; }
{ NameOfCoef un2; EntityType EdgesOf ; NameOfConstraint Dirichlet; }
// { NameOfCoef un3; EntityType EdgesOf ; NameOfConstraint BlochX; }
// { NameOfCoef un3; EntityType EdgesOf ; NameOfConstraint BlochY; }
// { NameOfCoef un3; EntityType EdgesOf ; NameOfConstraint Dirichlet; }
}
}
}
________________________________________
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
_______________________________________________
getdp mailing list
getdp at geuz.org
http://www.geuz.org/mailman/listinfo/getdp