Hi Tom,

Yes, you're essentially correct. With Mesquite I believe one would 
essentially redefine a triangulation in whatever format it wants (I think 
you provide nodal coordinate and connectivities), tell it which nodes 
remain fixed (i.e. provide some constraints) and then simply specify some 
algorithm with which it must update the nodal coordinate positions. So you 
would effectively give it a set of mapped coordinates of the triangulation 
and it returns a new set for you. The difference between these new mapped 
points and the reference grid nodal coordinates is your euler vector. 

Ignoring  here are only three real complexities with this approach: 
1. Defining the triangulation in its desired format (I think this is 
documented within the Mesquite documentation)
2. Translating this Euler vector into something thats relevant to the 
FESystem for your problem (this is what you're struggling to conceptualise, 
but its really not difficult at all).
3. Dealing with hanging nodes (which if I recall correctly Mesquite does 
support).

For the third point, I think that one must disconnect the problem that 
you're solving and solve the mesh update problem as a completely separate 
problem; this ties in with what Wolfgang has also said below. This is 
advantageous because one can then reuse this algorithm for various 
multiphysics problems (e.g. fluid-structure interaction), or just to 
increase the mesh quality before starting a simulation!

I would create a auxiliary system of dim x linear FE_Q's, which have 
support points that coincide with the vertices. Then the issue of relating 
DoFs and vertex locations is trivial because of these 
<https://www.dealii.org/developer/doxygen/deal.II/classDoFAccessor.html#a5560151b5407e4851d5c1009c7753764>
 
three 
<https://www.dealii.org/developer/doxygen/deal.II/namespaceGridTools.html#addb822f0e3068e48640ecc981ee6c1e6>
 
functions 
<https://www.dealii.org/developer/doxygen/deal.II/namespaceGridTools.html#a9b7e2ca8ecd26a472e5225ba91a58acb>,
 
which are valid when using Q1 elements. Once one's solved the mesh update 
problem, one then populates the Euler solution (displacement) vector 
corresponding to this auxiliary DoFHandler. Then you can just do an 
interpolation / projection of this vector onto your current FE space, or 
update the triangulation vertices if desired. This also eliminates any 
issues that arise if, say, your primary problem solves some displacement 
with quadratic or discontinuous elements. or if the displacement is only 
one component of the global solution.

My thinking is that one could add the following functionality to the 
library:
1. A function that takes in a triangulation and a (possibly empty) Euler 
vector defining the initial mapped coordinates of the triangulation 
vertices, and some boolean constraints vector. This would then return an 
optimal Q1 Euler vector as computed by Mesquite.
2. A function that actually 
<https://www.dealii.org/developer/doxygen/deal.II/step_18.html#TopLevelmove_mesh>
 
moves 
<https://www.dealii.org/developer/doxygen/deal.II/step_42.html#PlasticityContactProblemmove_mesh>
 
the triangulation vertices for you based on this vector.
3. A function that would interpolate the optimal Q1 Euler vector onto a 
given FE space, which would presumably represent the displacement solution 
to some other problem.

Does this make sense? I hope I haven't rambled on too much.
Cheers,
J-P

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to