Open lore-rip opened 2 years ago
Hi Lorenzo, Thanks for this contribution. The model is well written. It would be nice if we could have unit non-regression tests associated with it. Could you provide some ? Regards, Thomas
Hi Thomas, here a regression test featuring a creep test for the three anatomical directions of wood, Longitudinal, Radial, Tangential. An unitary load (1MPa) is applied in each direction. The material law coefficient passed through code_aster are: MFRONT=_F(LISTE_COEF=(10285, 369, 635, 0.448, 0.292, 0.35, 536, 571, 25, 329, 220, 384, 52, 37, 22, 66, 75, 97, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 66, 57, 57, 40, 36, 35, 3, 2, 2, 100, 1000, 10000))) They are representing Poplar wood.
The numerical solution is made by code_aster 14.6 with the command SIMU_POINT_MAT
Thank you
Hi Lorenzo,
Here is a first comparison between MTest
and code_aster
.
.
I performed the tests in small strain.
Thomas
Hi Lorenzo,
Created this branch to work on this issue: https://github.com/thelfer/MFrontGallery/tree/th/work_issue_2
I added a first implementation in small strain called OrthotropicGeneralizedMaxwell
in the generic-behaviours/viscoelasticity
directory as well as an associated test.
I then created a second implementation called PoplarOrthotropicGeneralizedMaxwell_2021
dedicated to poplar in the materials/Wood/behaviours
directory. All the material properties have been turned into parameters.
The common part of both implementations is in a file called OrthotropicGeneralizedMaxwell-core.mfront
in generic-behaviours/viscoelasticity
There are two things to discuss now:
Hi Thomas, Thank you very much. Following the pipe convention the coefficient for wood would be MFRONT=_F(LISTE_COEF=(635, 10285, 369, 0.029, 0.42, 0.165, 786, 838, 114, 66, 75, 97, 329, 220, 384, 37, 22, 66, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 66, 57, 57, 40, 36, 35, 3, 2, 2, 100, 1000, 10000))) The values are literature based so poplar. 2021 is perfect
And Here the corrected unit test with SigmaXX=-1Mpa, in radial direction
I would ask you to correct the date in the material behavior, I left a wrong one in the text Many thanks
Thank you very much. Following the pipe convention the coefficient for wood would be MFRONT=_F(LISTE_COEF=(635, 10285, 369, 0.029, 0.42, 0.165, 786, 838, 114...
Why aren't the shear modulus just a permutation of the previous values ?
Because I made an error in the first list. I apologize.
Hi Lorenzo, Unfortunately, I can't reproduce your reference results with this new parameters. Would you try to run the attached test ? Thomas
$ mfront --obuild --interface=aster OrthotropicGeneralizedMaxwell.mfront
$ mtest OrthotropicGeneralizedMaxwellRadialTest.mtest
Hi @lore-rip,
My bad, I kept the old reference files. Here is the same test.
Results are ok if I switch EYY and EZZ compared to SIMU_POINT_MAT
. Is it normal ?
Hi Thomas, yes it is normal and correct. Thank you
Hi @lore-rip Perfect. Would you try to adapt the two other tests ? Thanks, Thomas
Hi Thomas, here attached the two tests thank you tang_creep.txt long_creep.txt
Hi,
Both tests are now in the th/work_issue_2
branch.
We shall now work on the documentation of the behaviour.
To me, it barely boils down reproducing paragraph 2.2 of Froidevaux' paper. I'll make you a first proposal.
Best,
Thomas
Hi, Here attached the .mfront file made for the cylindrical elasticity. The file works here stand alone, where the angle phi is a material property, as well as the moisture content.
Three regression tests are included with material rotation of 0°,45° and 90° and unitary moisture content variation The tests as usual are done with code_aster SIMU_POINT_MAT The three input are MFRONT=_F(LISTE_COEF=(635., 10285., 369., 0.029, 0.42, 0.165, 786., 838., 114., 0.00064, 0.00013, 0.00115, 1., 0))) MFRONT=_F(LISTE_COEF=(635., 10285., 369., 0.029, 0.42, 0.165, 786., 838., 114., 0.00064, 0.00013, 0.00115, 1., pi/4))) MFRONT=_F(LISTE_COEF=(635., 10285., 369., 0.029, 0.42, 0.165, 786., 838., 114., 0.00064, 0.00013, 0.00115, 1., pi/2))
All the best
Lorenzo
@lore-rip. Just one remark, why did you declare the moisture as a material property and not an external state variable.
@lore-rip Sorry, but I can't reproduce the results of your test. Please find attached a test for phi=0 which uses your implementation. Would you have a look at it ?
Just one remark, why did you declare the moisture as a material property and not an external state variable.
Hi Yes it is the correct way indeed but it had problems with SIMU_POINT_MAT in code aster Both moisture and phi are external state variable generated a priori of the mechanical analysis
@lore-rip Sorry, but I can't reproduce the results of your test. Please find attached a test for phi=0 which uses your implementation. Would you have a look at it ?
Hi, I noticed that some values from mtest were not correct, I changed my input to match your mtest. Could you check again? cyl_test1.resu.zip
@lore-rip It works now. What did you change ?
@thelfer I changed the imposed sigma value, the last shear modulus and added the 10 steps. I think that the first one is the only affecting the result. Please read the private mail I sent you. Many thanks
@lore-rip Indeed, 10 steps shall not change anything.
For the imposed sigma value, I just read it in the first results that you sent me...
For the shear modulus, I used the values that you gave me:
MFRONT=_F(LISTE_COEF=(635., 10285., 369., 0.029, 0.42, 0.165, 786., 838., 114., 0.00064, 0.00013, 0.00115, 1., 0))) MFRONT=_F(LISTE_COEF=(635., 10285., 369., 0.029, 0.42, 0.165, 786., 838., 114., 0.00064, 0.00013, 0.00115, 1., pi/4))) MFRONT=_F(LISTE_COEF=(635., 10285., 369., 0.029, 0.42, 0.165, 786., 838., 114., 0.00064, 0.00013, 0.00115, 1., pi/2))
I did not (yet) receive your private mail, or are you taking about a previous one ?
For the shear modulus, I used the values that you gave me:
@thelfer as far as I understand you used a Shear Modulus13 of 113 instead of 114
I sent the mail again, please confirm to me that if it is not arriving, as it is quite important
You're right. I got your mail.
Thank you very much!! :)
@lore-rip Would you have a look at this directory: https://github.com/thelfer/MFrontGallery/tree/master/generic-behaviours/elasticity. Could you send me the results of the tests for angles pi/4 and pi/2 ?
@thelfer running your updated script I obtain this error in the command of code_aster (15 and 14) that build the library:
CREA_LIB_MFRONT(DEBUG='NON', UNITE_LIBRAIRIE=7, UNITE_MFRONT=5)
Treating target : all In file included from asterWoodOrthotropicElasticity_2022.cxx:11:0: fort.5:43:1: error: ‘tmatrix’ does not name a type compilation terminated due to -Wfatal-errors. Makefile.mfront:37: recipe for target 'asterWoodOrthotropicElasticity_2022.o' failed make: *** [asterWoodOrthotropicElasticity_2022.o] Error 1 callMake: can't build target 'all' libraries building went wrong
@lore-rip I updated to make it work with earlier versions of TFEL.
@thelfer it seems that a problem with the variable dw is arising
CREA_LIB_MFRONT(DEBUG='NON', UNITE_LIBRAIRIE=7, UNITE_MFRONT=5)
Treating target : all In file included from asterWoodOrthotropicElasticity_2022.cxx:11:0: fort.5: In member function ‘tfel::material::WoodOrthotropicElasticity_2022<(tfel::material::ModellingHypothesis::Hypothesis)6u, Type, false>::IntegrationResult tfel::material::WoodOrthotropicElasticity_2022<(tfel::material::ModellingHypothesis::Hypothesis)6u, Type, false>::integrate(tfel::material::WoodOrthotropicElasticity_2022<(tfel::material::ModellingHypothesis::Hypothesis)6u, Type, false>::SMFlag, tfel::material::WoodOrthotropicElasticity_2022<(tfel::material::ModellingHypothesis::Hypothesis)6u, Type, false>::SMType)’: fort.5:63:28: error: ‘dw’ was not declared in this scope compilation terminated due to -Wfatal-errors. Makefile.mfront:37: recipe for target 'asterWoodOrthotropicElasticity_2022.o' failed make: *** [asterWoodOrthotropicElasticity_2022.o] Error 1 callMake: can't build target 'all' libraries building went wrong
@lore-rip Did you turn w into a material property as in the initial implementation ? If so, this would explain the error as material properties are assumed to be given at the end of the time step.
@thelfer, you were right I have some other problems inside the code aster creation of the mfront library
CREA_LIB_MFRONT(DEBUG='NON', UNITE_LIBRAIRIE=7, UNITE_MFRONT=5)
Treating target : all The following library has been built :
libAsterWood.so : asterwoodorthotropicelasticity_2022
╔════════════════════════════════════════════════════════════════════════════════════════════════╗
║
Traceback (most recent call last):
File "./point1.comm.changed.py", line 20, in
Anyways in my code aster full implementation the moisture field and the angle field are calculated a priori as NEUT fields. This assures the possibility also of using syrthes if needed. Attached the file I'm using roto_test1.mfront.zip
@lore-rip you shall probably use
swell(0) = 0.00064 (NEUT2 + dNEUT2); swell(1) = 0.00115 (NEUT2 + dNEUT2); swell(2) = 0.00013;
BTW, what is the meaning of having a constant axial swelling ?
@thelfer it is clearly an error, sorry! BTW I'm coming with a very stupid question
you shall probably use
it make perfectly sense! Thanks
Anyways in my code aster full implementation the moisture field and the angle field are calculated a priori as NEUT fields. This assures the possibility also of using syrthes if needed.
Are NEUT* special names ?
BTW, relative humidity is associated with the special name SECH (see https://thelfer.github.io/MFrontGallery/web/Burger_EDF_CIWAP_2021.html#variables-declarations). I imagine that MoistureContent and RelativeHumidity are related (egal ?) but did not dig further.
Yes Thomas. NEUT1 and NEUT2 are numerical fields calculated in code_aster. I don't use SECH for many reasons, the most important one is that I want to manipulate those fields, as you said to go from Relative Humidity to Moisture Content. The second one is the use of Syrthes. More generally to maintain a certain freedom from certain code_aster internal procedures
@lore-rip, Indeed, code_aster
is not very flexible when it comes to external state variables. Hopefully, we are discussing with the code_aster
development team to improve that.
@thelfer Hi, this entry at the beginning of the script make the aster command CREA_LIB_MFRONT crash. @Material Wood; Maybe it is a bug.... Only to inform you why I was not able to run your script
Now your script works greatly, and with the following modifications it is possible to use it within SIMU_POINT_MAT in code_aster WoodOrthotropicElasticity_2022_a.mfront.zip
Summarizing we have 2 behaviors to describe cylindrical elasticity with swelling for wood:
1.WoodOrthotropicElasticity_2022_a.mfront that is the basic implementation of orthotropic behavior in cylindrical coordinates
2.WoodOrthotropicConicElasticity_2022_a.mfront that takes into account also of the possible conical growth of the rings in the vertical direction (here attached) WoodOrthotropicConicElasticity_2022_a.mfront.zip
@thelfer Hi, please find attached some regression test -Test_01a, Test_02a, Test_03a, are done WoodOrthotropicElasticity_2022_a.mfront for three angles 0°, 45°, 90° -Test_01b, Test_02b, Test_03b, are done WoodOrthotropicConicElasticity_2022_a.mfront for three angles 0°, 45°, 90°, and conical angle of 2° -Test_04b, Test_05b, Test_06b, are done WoodOrthotropicConicElasticity_2022_a.mfront for three angles 0°, 45°, 90°, and conical angle of 1°
Here the coefficient and the external variables
Test_01a MFRONT=_F(LISTE_COEF=(635., 10285., 369., 0.029, 0.42, 0.165, 786., 838., 113., 1.0, 0.0, 0., 0.035))) Moisture content NEUT1 =1 Angle NEUT2 =0
Test_02a MFRONT=_F(LISTE_COEF=(635., 10285., 369., 0.029, 0.42, 0.165, 786., 838., 113., 1.0, 0.0, 0., 0.035))) Moisture content NEUT1 =1 Angle NEUT2 =pi/4
Test_03a MFRONT=_F(LISTE_COEF=(635., 10285., 369., 0.029, 0.42, 0.165, 786., 838., 113., 1.0, 0.0, 0., 0.035))) Moisture content NEUT1 =1 Angle NEUT2 =pi/2
Test_01b MFRONT=_F(LISTE_COEF=(635., 10285., 369., 0.029, 0.42, 0.165, 786., 838., 113., 0.00064, 0.00013, 0.00115, 0.035))) Moisture content NEUT1 =1 Angle NEUT2 =0
Test_02b MFRONT=_F(LISTE_COEF=(635., 10285., 369., 0.029, 0.42, 0.165, 786., 838., 113., 0.00064, 0.00013, 0.00115, 0.035))) Moisture content NEUT1 =1 Angle NEUT2 =pi/4
Test_03b MFRONT=_F(LISTE_COEF=(635., 10285., 369., 0.029, 0.42, 0.165, 786., 838., 113., 0.00064, 0.00013, 0.00115, 0.035))) Moisture content NEUT1 =1 Angle NEUT2 =pi/2
Test_04b MFRONT=_F(LISTE_COEF=(635., 10285., 369., 0.029, 0.42, 0.165, 786., 838., 113., 0.00064, 0.00013, 0.00115, 0.017))) Moisture content NEUT1 =1 Angle NEUT2 =0
Test_05b MFRONT=_F(LISTE_COEF=(635., 10285., 369., 0.029, 0.42, 0.165, 786., 838., 113., 0.00064, 0.00013, 0.00115, 0.017))) Moisture content NEUT1 =1 Angle NEUT2 =pi/4
Test_06b MFRONT=_F(LISTE_COEF=(635., 10285., 369., 0.029, 0.42, 0.165, 786., 838., 113., 0.00064, 0.00013, 0.00115, 0.017))) Moisture content NEUT1 =1 Angle NEUT2 =pi/2 tests_mfront.zip
I would like to ask to include behaviors for wood in the repository. Here attached the first one that is an orthotropic Maxwell viscoelastic law, described in the attached paper. Thanks Lorenzo ortho_Maxwell.zip 3D_visco-elastic_modeling_Froidevaux_al.pdf