Hi Jean-Paul,

thanks for you detailed answer. You described excatly what I want to do.  
And I guess what is working for a finite deformation framework, works also 
for the case of small strains.
The main goal for me is still is to apply a prescribed marcoscopic stress 
tensor.
But it is always better to be able to choose from different boundary 
condtions. So first I want to add the prescribed strain setting BC. And it 
should also be much easier to implement.

As I already described my first idea was also to extend/modify the 
DoFTools::make_periodicity_constraints() functionality by adding some 
displacement offsets to the constraints. But as I discovered today the 
documenation is not too comprehensive about the used  parameters (eg. is 
the matrix a general transformation matrix or only for a rotation? Or what 
does the *first_vector_components* parameter?). And also the internal 
implemtation is not this striaghtforward as I thought. So I would be happy 
if you can share some working code with me. If I am able to add some 
feature to the library in the end, I like to give something back to this 
project by adding some functionality for other users.

The the second problem, the prepresibed stress tensor, I would also solve. 
But as I wrote, and you confimerd, this seems not to easy. As I hoped you 
gave me some insight how to solve such a problem. But I was hoping that 
there is a simple soulution in deal.II... 
But from you experience I guess that a Lagrange multipler approach is 
perhaps a more general  and robust approach, which works also with possible 
nonlinearity added later.

But first things first, so I try to add a macroscopic strain case, glady 
with the help of your code, and have a deeper look in Miehe's work (I think 
I had already a quick look in the referred paper, but was overwhelmed. 
Often finite deformations look too complicated for small strains)

Regards,
Lukas

Am Montag, 10. Februar 2020 22:38:50 UTC+1 schrieb Jean-Paul Pelteret:
>
> 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 <
> dea...@googlegroups.com <javascript:>> 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/
> 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 dea...@googlegroups.com <javascript:>.
> 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 dealii+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/1fd3d64e-041d-489e-ac94-f57dc2697e6b%40googlegroups.com.

Reply via email to