[Getdp] solving trivial example using edge elements
Olivier Castany
castany at quatramaran.ens.fr
Sat Jun 2 00:26:03 CEST 2007
Hello,
after discussing and working on that problem (with William McLean), I
present a few conclusions :
* The problem : "u + rot(rot(u)) = f, in Omega" can be stated with the
following boundary conditions (among other possibilities) :
- tangential value of rot(u) imposed on the boundary
- tangential value of u imposed on the boundary
* The first b.c. can be easily formulated in GetDP (see attached file
edge_elts_rot_u.pro).
* I did not find a direct way to impose the second b.c., but had to
use a two-step resolution :
1st) the edge coefficients of u on the boundaries are weakly
assigned by an initial resolution
2nd) the former result is taken as an essential b.c. for the main
resolution (TransferSolution / AssignFromResolution) (see attached file
edge_elts_u.pro).
* This solution works, but it could be interesting to have the
possibility to directly assign the edge values with something like :
Constraint {
{ Name DirichletBC; Type Assign;
Case {
{ Region Bdry; Value EdgeVector[]*g[] ; }
or even better :
{ Region Bdry; Value CirculationAlongTheEdge[g[]] ; }
}
}
}
* In a former message where I said that "I made a quick try", the
solution I wrote was not giving the desired b.c. (in fact, the b.c.
assigned was : gamma_t u - n x rot(u) = gamma_t g, where gamma_t is the
operator taking the tangential part of the vector)
Regards,
O.C.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: edge_elts.tgz
Type: application/x-gtar
Size: 1859 bytes
Desc: not available
URL: <http://www.geuz.org/pipermail/getdp/attachments/20070602/f6eb1a4e/attachment.tgz>