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.