Hi Daniel,

So, I'm modelling a unit square, with an incompressible neo-hookean 
material. The formulation is (for the density of energy) : c_1 * (I_1 - 3) 
- p (I_3 - 1) where c_1 = mu / 2, p is a lagrangian parameter, and I_1 and 
I_3 are the first and third invariant of C = F^T * F.
For me to see that my periodic boundary conditions are not applied, I put a 
non-uniform mu aver the material (graded material). In the example 
attached, I blocked the horizontal displacement (x_displacement) over left 
and right faces, and blocked vertical displacement (y_displacement) over 
the bottom face. And I (try to) apply a periodic boundary condition for the 
vertical displacement over left and right faces.
Attached is the output given to me after the first timestep (all timesteps 
are the same since I'm not applying any displacement nor force constraint).

We can obviously see that vertical displacement is not the same on the left 
and right faces. Any idea of where it could come from?

Many thanks!
Best,

Bastien


On Wednesday, June 1, 2016 at 5:43:48 AM UTC-5, Daniel Arndt wrote:
>
> Bastian,
>
> can you provide us with a minimal example that shows your problem? What 
> you are trying to do should be possible even if it might not be the right
> thing to do in your situation.
>
> Best,
> Daniel
>
> Am Mittwoch, 1. Juni 2016 02:10:36 UTC+2 schrieb Bastien Lauras:
>>
>> Hi,
>>
>> I am working on a 2D square, a incompressible neo-hookean material. I've 
>> used step 44 and modified it to work on a two field formulation (*u* and 
>> p).
>> I am trying to implement periodic boundary conditions for the vertical 
>> displacement on lateral faces (right and left).
>> My left face has boundary indicator 1, and my right face has boundary 
>> indicator 3.
>>
>> In the make_constraints function, I've added, after constraints.clear() :
>>
>>    DoFTools::make_hanging_node_constraints (dof_handler_ref, 
>> constraints); // I have local refinement in my code
>>
>>       std::vector<GridTools::PeriodicFacePair<typename 
>> DoFHandler<dim>::cell_iterator> >
>>       periodicity_vector;
>>
>>       const unsigned int direction = 0; // I've tried 0 and 1, I didn't 
>> understan what it really was
>>
>>       GridTools::collect_periodic_faces(dof_handler_ref, 1, 3, direction,
>>                                         periodicity_vector);
>>
>>     const FEValuesExtractors::Scalar x_displacement(0);
>>     const FEValuesExtractors::Scalar y_displacement(1);
>>
>>      DoFTools::make_periodicity_constraints<DoFHandler<dim> >
>>       (periodicity_vector, constraints, 
>> fe.component_mask(y_displacement));
>>
>>
>> And then I apply Dirichlet boundary conditions on face 1 and 3 on the 
>> horizontal displacement (x_displacement).
>> I've also added the command :
>>
>> DoFTools::make_hanging_node_constraints (dof_handler_ref, constraints);
>>
>> before making my sparsity pattern.
>> My triangulation is not a parallel::distributed one. I'm working on 
>> multithreads with the workstream::run of step 44.
>>
>>
>> The problem is that my periodic boundary conditions are not enforced. The 
>> make_periodicity_constraints command does not change the number of 
>> constrained degrees of freedom (that I compute using a loop over the DOFs 
>> and calling constraints.is_constrained(i)).
>> And moreover, I can see on my outputs that there is definitely no 
>> periodicity on my vertical displacement.
>>
>> Where can the problem come from?
>>
>> Thanks a lot for your help beforehand!
>>
>> Bastien Lauras 
>>  
>>
>

-- 
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.

Attachment: timestep-1.vtk
Description: Binary data

Reply via email to