Hi,

I'm trying to implement a periodic boundary condition for a basic elastic 
equation (almost like step 8, but with the general 4th order stiffness 
tensor and neuman bcs).
The common way to enforce periodicity in deali.II with 
GridTools::collect_periodic_faces, or 
DoFTools::make_periodicity_constraints work so far very well.
But if I want also to impose a macro stress condition to the whole domain 
the problem gets more complicated:

A far I understood the the constrains for a normal periodic boundary 
condition are 

      [[ u_i ]] = 0, 

So the jump of the displacement over the periodic boundary must vanish [1, 
2]. This is normally achieved by elimination of the DoFs of one boundary 
via e.g. AffineConstraints.
But now I get also traction constrains: The tractions in the normal 
direction must also vanish (often called anti-symmetric boundary condition)

      [[ t_i n_i ]] = 0.

My first thought was to archive the latter (or maybe both) e.g. with a 
penalty term over the periodic boundary (I guess this approach is called 
'weak boundary conditions' ?).
Therefore the basic approach is given by the DG examples or the new C0IP 
tutorial (even if the resulting penalty term for the elastic problem is 
somehow still unclear for me)

But the biggest problem is how I can couple the constrains above with a 
macro problem to enforce a overall strain/stress state.
In the case of a macro strain the traction condition should fulfilled 
automatically and we get something like [[ u_i ]] = g_i, with a macro 
displacement g.
Hence I would guess that the DoFTools::make_periodicity_constraints with a 
transformation matrix can deal with that kind of problem.

If we want a macro stress condition, which is my goal, a common approach is 
to add a coupled macro problem to the existing PDE to ensure the 
Hill-Mandel condition.
Now we got a linear system like

      (  K        K1    )  [  U_i  ]   =    [   0  ]
      (  K1^T   K_2  )  [  E_ij  ]         [  S  ]

where E is a macro strain, S a macro stress. K are the coefficients of the 
normal system.
K_1 should couple the micro with macro problem and is something like 
'C_ijkl sym(u_k,l) v_i n_j'  on all the boundaries [2]. This should ensures 
that the average stress on all boundaries is fulfilled.
And K_2 = <C> is the averages stiffness tensor of the micro problem.

I hope that I summarized the topic correctly. Now to my questions:

Is it possible to archive a macro stress boundary condition with the use of 
AffineConstraints? Like adding some artificial lines with coefficients that 
mimics the averaging over the boundaries and thus the macro problem.

If this does not work, which I'm quite sure it will, how can I add the 
macro problem to the existing or add any additional DoFs to the system of 
equation?
The only reasonable I found in the doxygen was 
NonMatching::create_coupling_sparsity_pattern but that is not quite the 
thing I want, as the macro problem is not a spatial problem (has no mesh, 
but is connected to the whole boundary).

The papers describing such a macro periodic boundary condition [1,2,3,...] 
are mainly only for the macro strain case. And none of them gave me an hint 
how to implement this in a solver.
A open source tool hat implement such a BC for Abqaus is homtools 
<http://homtools.lma.cnrs-mrs.fr/spip/spip.php?article2>. I already looked 
into the code of the plugin, but as 'blackbox solver'  that Abqaus is, I 
did not get any answers.

Maybe there is an elegant way to solve this problem, but I have no clue how 
to start. I hope that someone can give me a basic idea how I can make this 
boundary condition work.

Regards,
Lukas Schöller

[1] https://doi.org/10.1002/nme.3014
[2] 
https://journal.materialsscience.net/wp-content/uploads/2019/03/michel1999.pdf
[3] https://doi.org/10.1016/j.euromechsol.2019.103825

-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/2a2f7b42-801c-45ad-8d05-e16d80b6a6b7%40googlegroups.com.

Reply via email to