Dear community,
I am asking some advices on the following issue. I am solving a simple
problem, say a Poisson problem in the unknown field u, and a more involved
problem separately. This second problem requires the values of u in the
Neumann boundary conditions.
Accordingly, I guess one could solve the Laplacian first and calculate the
numerical solution for u, say un. Afterwards one builds a solver for the
more complex operator and in the Neumann part of the code - that may look
like this for parallel::shared triangulations:
for (unsigned int face_number=0;
face_number<GeometryInfo<dim>::faces_per_cell;
++face_number)
if (
cell->face(face_number)->at_boundary()
&&
cell->face(face_number)->boundary_id() == 2 // Neumann
boundaries
)
{
fe_face_values.reinit (cell, face_number);
// define points and normals
std::vector< Point<dim> > points =
fe_face_values.get_quadrature_points();
std::vector< Tensor<1,dim> > normals =
fe_face_values.get_all_normal_vectors();
// calculate neumann values
for (unsigned int q_point=0; q_point<n_face_q_points; ++q_point)
{
// values: mechanical
Tensor<1,dim> mech_neumann_value;
neumann_bc_for_mech.bc_value( points[q_point],
normals[q_point], mech_neumann_value );
.....
one needs the value of the field un at points points[q_point] to be passed
to neumann_bc_for_mech.bc_value.
Which is an effective way to calculate this amount ?
Thank you.
Alberto
--
Informativa sulla Privacy: http://www.unibs.it/node/8155
<http://www.unibs.it/node/8155>
--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see
https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to the Google Groups
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.