> 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