-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TFEL/MFront + FEniCS - Cosserat elastoplastic behaviour #52
Comments
Dear Tamara, Thanks for your interest. I think that we can do something interesting around the mgis.fenics python module which has mostly been developed by @bleyerj. See this page for details: https://thelfer.github.io/mgis/web/mgis_fenics.html For Cosserat elastoplasticty, I need to have a closer look at the behaviour that you want to implement to tell you if you can implement it right now or if some features are missing in Performance wise, we currently rely on the MPI parallelisation provided by Concerning the Do not hesitate if you have further questions, we will be happy to help. Regards, Thomas |
Hi @tamaradanceva , If you give us the exact small strain model you want to solve we can try an implementation. I am not familiar with large strain Cosserat models but we can also have a look if small strain is OK. Strain-gradient models should be harder for two reasons (again if I am not mistaken):
|
Thank you very much for the answers. I will get back to you if I have any more questions since I will try implementing the models. First I am trying to run some tests in parallel. Here is a link to a preprint of an article by my colleague in the modeling work package that is going to be published in the next issue of the Journal Continuum Mechanics and Thermodynamics: https://zenodo.org/record/4059439. It describes in detail the derivation of an Elasto-Visco-Plastic Cosserat model in small deformation applied on the Hat-Shaped Specimen benchmark (a loading that causes the localization of the shear deformation in a band - called the Adiabatic Shear Band). In the Cosserat model, the rotation of the microstructure is a vector, and the Cosserat wryness tensor (equivalent to the micro-strain gradient tensor) results in a non-symmetric 2nd-order tensor. My colleague decided to use the Cosserat instead of the strain-gradient approach (that figures in the project proposal) since it is more robust and less approximative, in short, in his words. It can mimic the same properties and finally, the strain gradient can be obtained with a choice of parameters. Best, |
First of all many thanks for the support! I am collaborating with @tamaradanceva on the implementation of the elasto-plastic version of the Cosserat media under Small Deformation. We are in the same European Project ENABLE, and I am currently implementing the Large Deformation version (Hyper-Elastic, Visco and Elasto Plastic) in Z-Set (ZEBULON). I am not familiar with the syntax by which the *.mfront files are written, but I recognize that many of the *.cxx structure follows similar logic than in Z-set. The main issue that we are facing is the selection of an appropriate class of material behavior that would allow us to define additional Grad, additional Flux and additional material tangent matrix. Here I report a short summary of the kinematic and material laws governing our problem:
We unsuccessfully tried to use the DefaultDSL and DefaultGenericBehaviourDSL material classes but got into issues when trying to define additional material tangent matrices. Many thanks in advance for the help. Best, |
Hi @RaffaRus, |
Thanks a lot for the assistance! Yes, if I can be of any help writing some tutorial I would be glad to do so. Let us talk next week then. Have a nice weekend. Best, |
Hi @RaffaRus, I think that this could be feasible right now. Could you share with us your best attempt and we can have a look and get back to you. |
Hi @bleyerj , thanks for your help! In the attachemnts our attempt to model the behavior using the DefaultGenericBehaviour class. There are few comments related to the issues we are facing. Please let us know if they are not clear. Best. |
Indeed, there seems to be only partial support of Tensor/Tensor tangent blocks in MFront which makes straightforward implementation of Cosserat EP behaviour not possible right now. This should be fixed soon (I opened the following ticket https://sourceforge.net/p/tfel/tickets/252/) |
Hi |
@RaffaRus, @bleyerj. With a one line fix, here is a minimal example.
The fix is available shortly on |
It would be nice to detail the algorithm. I understand that this is a fully Euler backward algorithm, is it ? @RaffaRus would you start writing a small document describing the principle of virtual box and the behaviour integration. For the better would be to write it in |
hi, here is a first proposal which compiles with the current master. I didn't check it yet though |
Hi @bleyerj, This is becoming nice but:
|
yes, I was just sending this quickly, I had my kids around... I'll get back to it this week |
@bleyerj, come mine too. Also, was not sure if the proposed algorithm is fully implicit or fully explicit... That's why I proposed to start write a small paper to fix the equations (and the computation of the consistent tangent operator) |
Thank you very much for your help so far. We have tested the version sent by @bleyerj and it doesn't compile, with or without the definition of the tangent operator. It results in the same error as before, from the check of the types of the gradient and the flux when creating the tangent operator. This is including with the latest version.
This is just to check that we are on the same page. Meanwhile, @RaffaRus is going to provide a small document with the description of the full model, the virtual work and the behaviour integration. |
Hi @tamaradanceva, @RaffaRus |
OK, let me know if you need some help on the FEniCS side, in particular it may be possible that the Cosserat model needs some reduced integration strategy to prevent any numerical locking... |
@thelfer the algorithm will be implicit but with a closed-form analytical expression as for the standard von Mises with isotropic linear hardening. The are however alternative models for Cosserat plasticity which are more like a multisurface plasticity e.g. a von Mises surface in the stress-space intersected by a von Mises-like surface in couple-stress space. Of course, you can also have more complex yield surface shapes like Drucker-Prager, etc... |
Ok, I just did not take the time to write it properly. So your implementation already shows that the current For the moment, the |
Here I attach a small report on the model we are trying to implement. We are also close to something working thanks to your help. We are going to let you know asap. Please let me know if I missed some important information in the report. Cheers, Raffa. |
Here is a link to the case we are working on, https://github.com/RaffaRus/Cosserat-Fenics/tree/master/Tensile_Ti-6Al-4V-Cosserat. We did some benchmarking on a tensile test with classical elastoplasticity and we are trying to extend the same example with Cosserat for a start. It should not make a difference if it is done correctly. I want to ask you specifically about the transfer of variables between MFront and FEniCS (gradients, thermodynamic_forces, and K). I think that as it is, it is not correct and the displacement rotation solution is diverging partly because of that and other potential issues. From our understanding and looking into the code, for example in the case of K, which I suppose it is the same for the rest, the values alternate Ct[0][0], Dt[0][0], C[0][1], D[0][1].. Is this is a correct supposition? Best, |
dear @tamaradanceva and @RaffaRus , as discussed today with @thelfer, it seems that :
|
Hi @tamaradanceva, @RaffaRus, @bleyerj
Thanks for checking this, I indeed came to the same conclusion, i.e. that no closed form solution exists for the implicit scheme in the Cosserat case. So we'll have to rely on the In the meantime, we would already use an explicit integration scheme (based on the consistency condition deveopped in the document provided by @RaffaRus), but the consistent tangent operator will not be available. As a result, the global convergence will be only linear and not quadratic. @bleyerj Does |
@RaffaRus, @tamaradanceva, @bleyerj Here is an explicit implementation based on Equations 1.59, 1.60 and 1.61. More precisely, I adapted Jérémy's implementation. Only the elastic operator is returned. We could implement the tangent operator given by Equations 1.57 and 1.58 (completed by the coupling blocks), however this is probably a bad idea: in standard elasticity, it is often advocated in the litterature that such tangent operator leads to a spurious oscillations of the residual. We shall better stick with the elastic operator and acceleration algorithms. I did not test it so far, I'll see when I'll have some time. @bleyerj do not hesitate to give a try in the meantime. Note that you will need the very latest version of ExplicitCosseratIsotropicLinearHardeningPlasticity.zip P.S.: @bleyerj In your implementation, beware that (3/2) is equal to 1 in |
@tamaradanceva @RaffaRus |
@bleyerj Great work ! @RaffaRus, @tamaradanceva don't forget to update both |
@RaffaRus, @tamaradanceva, @bleyerj I just wanted to point this issue: https://sourceforge.net/p/tfel/tickets/256/ |
@thelfer Thanks for the heads up, I updated it. |
The github has been updated at 20h43. |
Here is a link to the glide test, https://github.com/RaffaRus/Cosserat-Fenics/tree/master/Glide-Cosserat-ElastoPlasticity with results from FEniCS and Zset, and a comparison with the analytical solution. We are going to continue with the bending test, performance analysis, extending the model etc. Thanks a lot for your help again! |
@tamaradanceva Thanks for the feed-back, that's quite nice. As discussed before, performances are yet to be optimised and we expect two main improvements:
Could you also have a look at the number of iterations to find the equilibrium in each cases ? |
About the improvements, I have them in mind. I was about to ask you about the plans for moving to dolfin-x, it is good to know. We just have an internal deadline at the beginning of December, for which, I would have to do an initial evaluation. In the FEniCS+MFront case, we have [1,1,1,1,1,1,3,7,8,8,9,10,10,11,12,13,15,16,18] iterations. I will get back to you on Zset, I have to check with Raffa. |
@tamaradanceva That's good to have those limitations in mind (and the fact that they will hopefully be overcome in mid-term). |
@thelfer For the glide we do, but for the rest not yet. We started exploring the options initially with the elasto plasticity demo, a tensile test, later realized it can be simplified so much with Could we also attend the MFront User Meeting? I looked it up but found no mention. About organizing a meeting afterwards, absolutely. |
@tamaradanceva, @RaffaRus Of course you can attend the meeting. Just register at [email protected]. |
Firstly, firstly, I said I would get back to you on the number of iterations in Zset for the glide test. It is: [1,1,1,1,1,1,4,5,6,6,6,7,7,8,9,10,10,9]. Secondly, about the meeting, we propose next week Thursday (03.12), after 13:00, and Friday (04.12), any time you are available. Let us know if any of these slots would work for you or other slots that work for you. |
Hi,
I am a Ph.D. student at the Basque Center for Applied Mathematics in Bilbao, Spain. I am also part of the ENABLE project, an Innovative Training Network (https://enable-project.com). My specialization is in High-Performance Computing, in the context of setting up an HPC environment and developing efficient methods for advanced multi-scale material behavior law models using strain-gradient plasticity models, in the open-source Finite Element platform, FEniCS.
I have been exploring the possibility of using MFront to implement a Cosserat elastoplasticity model in the framework of small deformations as a starting point. The next objective, ideally, would be implementing a similar Cosserat model for large deformation. Now, I have seen that I can run simulations with multiple threads. My question is if there is a workflow (experimental or otherwise) that would enable me to run in parallel? I am following the progress on Dolfin-X. However, in the meantime, is there any alternative way you are aware of to accomplish my goal? Implementing a solid mechanics library like FEniCS Solid Mechanics, from scratch is not feasible since this is only one of a series of tasks that I need to do within my project (with a duration of 3 years).
Your work has been of great help to me so far. I would be very grateful for any input that you can give me.
Thanks,
Tamara
The text was updated successfully, but these errors were encountered: