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

Reply via email to