> Thank you for your answer.  Just to clarify that the mesh is static
> throughout time, so old_solution would be stored in terms of the
> coordinates $\mathbf{x}^{j+1}$.   I want to find out the old_solutions at
> the points $((\delta t) \mathbf{u}^{j+1} + \mathbf{x}^{j+1})$ so i can
> evaluate the solution using the method of characteristics.  I know how to
> do this using my own FE code, but I've failed to work out how to implement
> it in deal.ii.

Evaluating the solution at arbitrary points is of course an expensive 
operation since you first have to find the cell in which the point lies, then 
do the inverse transform to see what its reference coordinates are within this 
cell, and then evaluate the shape functions at these references coordinates. 

There are two pieces of functionality in deal.II that can help you:
- the VectorTools::point_value function that evaluates a FE field at an
  arbitrary point
- the FEFieldFunction that presents a FE field as a continuous function
  that can be evaluated like functions of type Function<dim>
I don't know if these two provide you with all that you need, but you may want 
to look at the implementation of these functions/classes to see how this can 
be done. In particular, if for example your mesh is a uniformly refined box, 
then the computation of the inverse transform can be done more efficiently by 
hand (or by using the MappingCartesian class).

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