Alex,
> My first question deals with
> the reinitialization of this function to avoid distortion of the
> propagating front. I need to be able to get the value of the saturation
> variable on a mesh node plus the value of the satuartion for the
> surrounding nodes; namely the patch of elements centered (I am using a
> grid aligned with the global axis) at the given node and the position of
> these nodes so that I can compute the distance from the assumed contour
> where the free surface is located.
By and large, deal.II always works from higher dimensional objects to lower
dimensional objects, for example from cells to faces to edges to vertices.
The other way around, or laterally is difficult, so most of the time we
write algorithms such that they loop over all cells and compute whatever
is necessary.
In your case, you could do the following, if you need vertex to vertex
information: do something like this:
std::map<unsigned int, std::set<unsigned int> > vertex2vertex;
for (cell=...)
for (v=0...GeometryInfo<dim>::vertices_per_cell)
for (vv=0...GeometryInfo<dim>::vertices_per_cell)
if (v != vv)
vertex2vertex[cell->vertex(v)].insert (cell->vertex(vv));
At the end of this you have an array that for each vertex has a list of all
the other vertices it connects with. You'll know how to modify something
like this for your purposes.
> The second question deals with the implementation of the boundary
> conditions on solid boundaries. In general I need to be able to impose
> full vanishing velocity vector only when the pseudo concentration at
> this point indicates full saturation and apply free traction when the
> saturation indicates the presence of pseudo-fluid.
If these boundary conditions always hold on entire faces, you can have a
loop over all cells & faces and set boundary indicators depending on
whether this is a full or partial boundary condition. If you need to
determine these things for each node individually, the best thing I can
suggest is to take a look at functions like interpolate_boundary_values
etc and see how you need to modify it.
In either case, you'll have to do all this in every time step.
> PS:It would have been good if I could solve only on the saturated domain
> since this would save plenty of computation time can this be implemented
> in deal.II?
Search the mailing list archives for discussions on the FENothing finite
element class. It seems like this is what you may need.
Best
W.
--
-------------------------------------------------------------------------
Wolfgang Bangerth email: [email protected]
www: http://www.math.tamu.edu/~bangerth/
_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii