Hello everyone,
I am coding for my graduation design, and hoping to achieve a coupling geomechanics and fluid model.
I use FE_RT<dim> for velocities and FE_Q<dim> for displacement of the rock.
In order to valid my model and programming, I use 1 D Terzaghi.
But my boundary conditions appears have some problems.
there is a 1 * 10 rectangle, I put the boundary conditions as the pic:
1,2,3,4 represent the boundary id.
I apply the boundary conditions that displacement is zero at 3.
And no flux boundary at 1,2,3;
constraints.clear();
FEValuesExtractors::Vector displacement(dim+2);
VectorTools::interpolate_boundary_values(dof_handler,
3,
Functions::ZeroFunction<dim>(2*dim+2),
constraints,
fe.component_mask(displacement));
VectorTools::project_boundary_values_div_conforming(dof_handler,
0,
Functions::ZeroFunction<dim>(2),
1,
constraints);
VectorTools::project_boundary_values_div_conforming(dof_handler,
0,
Functions::ZeroFunction<dim>(2),
2,
constraints);
VectorTools::project_boundary_values_div_conforming(dof_handler,
0,
Functions::ZeroFunction<dim>(2),
3,
constraints);
constraints.close();
However, what I get is :

the displacements are also been limited in 1,2,3 boundary.
If I just set no flux boundary at 2,3,
it seems that displacements also are zero at boundary 2,3.
What can I do to solve this?
Thank you all in advance!