Hi Lukas,

If I’ve interpreted your emails correctly, you’ve mentioned two distinct things 
here, namely (1) the imposition of periodic displacement fluctuation field 
(thereby, in essence, prescribing a macroscopic average deformation gradient, 
with stress unknown) or (2) the imposition of a macroscopic stress condition 
through anti-periodic tractions (with deformation gradient unknown). It would 
seem to me that when you impose the one you implicitly end up imposing the 
other.

I’ve got a little bit of experience with topic, but only from finite strain 
mechanics. So I’m going to lay out a few things coming a finite-deformation 
perspective. There’s a very nice set of papers by Miehe that discusses various 
methods to impose such conditions for the elasticity problem. The main work of 
interest might be this one:
C. Miehe. Computational micro-to-macro transitions for discretized 
micro-structures of hetero- geneous materials at finite strains based on the 
minimization of averaged incremental energy. Computer Methods in Applied 
Mechanics and Engineering, 192(5–6):559–591, January 2003. DOI: 10.1016/s0045- 
7825(02)00564- 9. 

I’ve implemented a set of functions that, as Miehe describes, sets up a 
periodicity frame and defines a set of constraints to satisfy (1) by imposing 
that [[u]] = \bar{\Grad u} [[X]] where \bar{\Grad u} is the macroscopic 
displacement gradient, and u and X are the microscopic displacement and 
position vectors, respectively. I’d be happy to share this with you if you’d 
like. To be honest though, although I rigorously followed Miehe’s approach for 
this as an educational exercise, one could simply amend our existing 
DoFTools::make_periodicity_constraints() function to include the necessary 
inhomogeneity (specifically, \bar{\Grad u} [[X]]) and an additional set of 
constraints to remove the rigid body motions. Its on my to-do list to add this 
to the library, but if its something that you’d like to try to add to the 
library yourself, then I’d be happy to try to help you with that.

As for option (2), I’m afraid that I’ve not been able to give much thought to 
the details that you laid out in your original email and how it all fits 
together. I’m sure that it’s possible to do in the way that you’ve expressed 
(since the stress and strain are linearly related), but it seems like a real 
pain to have to deal with the additional tensor-valued DoFs. What I can tell 
you is two methods that myself and one of my colleagues have used to impose 
such conditions (for non-linear problems, where there are not necessarily such 
nice ways to express and exploit the stress-strain relation). The first is to 
solve a global problem that equilibrate the homogenised stress and the 
(imposed) macroscopic stress. This is relatively straight-forward, but one does 
need to solve the boundary value problem within some global iterative scheme, 
and one also needs to compute the (algorithmically consistent) tangent 
stiffness matrix. The second approach, which my colleague has had a lot of 
success with, is simply using Lagrange multipliers to impose the anti-periodic 
tractions. I believe that Miehe also discusses this in that paper that I listed 
above.

Anyway, maybe this doesn’t give you exactly the answer that you were looking 
for, but maybe it’ll give you some other ideas on how you want to go about 
approaching the problem. And, as I said, if you do want a set of functions to 
(with some small restrictions) implement (1) then I’d be happy to share.

Best,
Jean-Paul

> On 10 Feb 2020, at 11:55, 'Lukas Schöller' via deal.II User Group 
> <[email protected]> wrote:
> 
> Hi,
> 
> I have thought about the problem again and now I have a solution proposal:
> 
>       [[ u_i ]] = 0,
> 
> would I fulfill by adding entries in the constraint matrix.
> E.g. u_i = u_j for each DoF pair on the boundary. I just have to figure out 
> the DoF indices i and j.
> 
> The average overall stress state, I want also archive with the constraint 
> matrix:
> For the first DoF of the periodic boundary pair I would add  a constrain like
> 
>       u_1 = A_1i u_i + A_1j u_j + ... + A_1N u_N + S_kl N_l
> 
>       u_1 = sum_i^N ( A_1i u_i ) + S_k N_l
> 
> with i=2..N (all DoF indices on the periodic boundary), the prescribed stress 
> tensor S and a global normal vector of the boundary N.
> And the coefficients are the the calculated by
> 
>       A_ij = C_ijkl sym(u_k,l) n_j  Jwxq
> 
> on the corresponding faces by iterating in standard fashion over all 
> cells/faces and evaluating the terms with via FEFaceValues.
> [[ t_i n_i ]] = 0 should thereby be indirectly satisfied.
> 
> But I'm not sure if the evaluating the coefficients in such a manner, leads 
> in the end to the wanted behavior of the system (stress fluctuations on the 
> boundaries but an average prescribed stress tensor).
> Is it a good idea to include coefficients in the constraint matrix that 
> depends on some shape function. I thought those belonged in the system matrix.
> Can this still work?
> 
> Another issue is how to make this concept work in a parallel context: Which 
> process must know about which DoF?
> 
> Regards,
> Lukas Schöller
> 
> 
> 
> -- 
> The deal.II project is located at http://www.dealii.org/ 
> <http://www.dealii.org/>
> For mailing list/forum options, see 
> https://groups.google.com/d/forum/dealii?hl=en 
> <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] 
> <mailto:[email protected]>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/dealii/ad96305f-99d0-4ca4-b37e-b68b0f0f9f93%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/dealii/ad96305f-99d0-4ca4-b37e-b68b0f0f9f93%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- 
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/E80DE40B-F722-407A-BE81-7ECECE088AEE%40gmail.com.

Reply via email to