Hi everyone,

I'm trying to impose a BC of specular type, and I'm having some troubles
figuring out what's the easiest (not necessarily the most efficient) way to
do it.

I have streaming equations of order one, solved by an implementation such as
the step-5 for 3D.

I'm trying to implement a specular BC, i.e. the boundary condition for the
direction analyzed (output direction) is the result of the reflection at the
boundary of another direction (input direction) that has been already solved
in previous steps.

I store the solution for every direction as:

   BlockVector<double> angular_solution

Can I define

   Function<dim> input_solution (Vector<double> solution)

to put in


VectorTools::interpolate_boundary_values(dof_handler,'1',input_solution<dim>
(angular_solution.block(i)),boundary_values)

If so, how do I define it?

I'm trying also to fill the boundary_values map manually, but it's getting
difficult to relate dofs to points in the boundary, to fill the BC with the
corresponding specular direction.

The relation for the selection of the specular "input" direction is also not
straightforward, particularly if the boundary has low-angle corners, where I
have to analyze the normal to the corner point as an average of the normal
of the faces, but selecting only the directions coming from the inside of
the domain, I know how to handle this, but I should first solve the previous
difficulty :S.

Maybe I missed some tutorial, or method in the library which shows how to do
a thing like that. Any recommendation will be very appreciated.


Thank you all!
_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii

Reply via email to