... | ... | @@ -8,7 +8,7 @@ damageinfo.dat is read by DamageInfoParser.h |
|
|
|
|
|
| **command**| **description**|
|
|
|
|:---------------------------------|:-------------------------------|
|
|
|
| initial_defect_width = 0.2 | Here, the initial defect will be *0.2* times the characteristic length `lc` of the material |
|
|
|
| initial_defect_width = 0.2 | here, the initial defect will be **0.2** times the characteristic length `lc` of the material. |
|
|
|
| restart_file = ls_control_timestep_0730.bin | (no warranty on restart procedure) |
|
|
|
|
|
|
|
... | ... | @@ -20,19 +20,19 @@ damageinfo.dat is read by DamageInfoParser.h |
|
|
|
|
|
| **command**| **description**|
|
|
|
|:---------------------------------|:-------------------------------|
|
|
|
| main_debug = 0 | *1* for verbose prints, else *0* |
|
|
|
| max_number_iterations = 200 | maximum number of iteration for crack propagation: here, the damage level set will move approximately *200* times the `radius_factor` times `lc` |
|
|
|
| maximum_elastic_nl_iteration = 20 | maximum number of iteration for Newton-Raphson solver |
|
|
|
| residual_threshold = 1.e-5 | maximeum residual for Newton-Raphson solver |
|
|
|
| main_debug = 0 | **1** for verbose prints, else **0** |
|
|
|
| max_number_iterations = 200 | maximum number of iteration for crack propagation.|
|
|
|
| maximum_elastic_nl_iteration = 20 | maximum number of iteration for Newton-Raphson solver. |
|
|
|
| residual_threshold = 1.e-5 | maximum residual for Newton-Raphson solver. |
|
|
|
| update_tangent_mat_freq = 5 | ... |
|
|
|
| number_of_thread = 4 | ... |
|
|
|
| elastic_solver_verbose = 0 | *1* for verbose prints |
|
|
|
| velocity_solver_verbose = 0 | *1* for verbose prints|
|
|
|
| elastic_solver_condn = 0 | ... |
|
|
|
| elastic_solver_mumps_mem = 5500 | ... |
|
|
|
| velocity_solver_mumps_mem = 5500 |... |
|
|
|
| elastic_solver_mumps_mem_relax= | ... |
|
|
|
| velocity_solver_mumps_mem_relax | ... |
|
|
|
| elastic_solver_verbose = 0 | **1** for verbose prints for MUMPS solver|
|
|
|
| velocity_solver_verbose = 0 | **1** for verbose prints for MUMPS solver|
|
|
|
| elastic_solver_condn = 0 | matrix conditionning for SuperLU solver |
|
|
|
| elastic_solver_mumps_mem = 5500 | ... for MUMPS solver |
|
|
|
| velocity_solver_mumps_mem = 5500 |... for MUMPS solver |
|
|
|
| elastic_solver_mumps_mem_relax= | ... for MUMPS solver |
|
|
|
| velocity_solver_mumps_mem_relax | ... for MUMPS solver |
|
|
|
|
|
|
|
|
|
|
... | ... | @@ -46,9 +46,23 @@ damageinfo.dat is read by DamageInfoParser.h |
|
|
|:---------------------------------|:-------------------------------|
|
|
|
| lc = 0.01 | Characteristic length `lc` of the material |
|
|
|
| Yc = 100 | Characteristic Yield `Yc` of the material |
|
|
|
| YPCoef = 0. | Generally *0*, except for Cohesive Zone Model equivalence where it is ???|
|
|
|
| YPCoef = 0. | Generally **0**, except for Cohesive Zone Model equivalence where it is ???|
|
|
|
|
|
|
|
|
|
## hardening properties (CZM)
|
|
|
See article **Comparison between thick level set (TLS) and cohesive zone models**, Andrés Parrilla Gómez,
|
|
|
Nicolas Moës and Claude Stolz, **Advanced Modeling and Simulation in Engineering Sciences**, 2015, pp 2:18,
|
|
|
DOI: 10.1186/s40323-015-0041-9
|
|
|
[[https://https://static-content.springer.com/image/art%3A10.1186%2Fs40323-015-0041-9/MediaObjects/40323_2015_41_Fig3_HTML.gif]]
|
|
|
|
|
|
| **command**| **description**|
|
|
|
|:---------------------------------|:-------------------------------|
|
|
|
| hardeningCZM = 1 | **1**: use Cohesive Zone Model equivalence |
|
|
|
| CZM_wf = 7.80e-5 | *wf* maximun opening value (stress is 0). |
|
|
|
| CZM_w1 = 3.00e-5 | *w1* opening value. |
|
|
|
| CZM_sigmak = 1.00e6 | *sigmak* at the point where the slope changes. |
|
|
|
| CZM_sigmac = 3.00e6 | stress at which the opening starts |
|
|
|
|
|
|
|
|
|
|
|
|
|
... | ... | @@ -56,9 +70,10 @@ damageinfo.dat is read by DamageInfoParser.h |
|
|
|
|
|
| **command**| **description**|
|
|
|
|:---------------------------------|:-------------------------------|
|
|
|
| polynomial_order = 2 | *2* |
|
|
|
| use_enrichment = 5 | *5* to use Heavyside function enrichment of the crack, else *3* |
|
|
|
| update_displacement_field = 0 |... |
|
|
|
| polynomial_order = 2 | **2** (but, level set order is 1) |
|
|
|
| space_type = 1 | ... |
|
|
|
| use_enrichment = 5 | **5** to use Heavyside function enrichment of the crack, else **3** |
|
|
|
| update_displacement_field = 0 | **0** means that the displacement field is unknown every iteration. **1** the displacement field is initiated with the previous displacement field in the Newton-Raphson solver (may reduice the N-R process in some case, but is more time consuming ) |
|
|
|
|
|
|
|
|
|
|
... | ... | @@ -68,7 +83,7 @@ damageinfo.dat is read by DamageInfoParser.h |
|
|
|
|
|
| **command**| **description**|
|
|
|
|:---------------------------------|:-------------------------------|
|
|
|
| tls_geom_interface = 2 | *2* for Double Cut to use with `use_enrichment` equal to *5* or *0* , `0` for Simple Cut to use with `use_enrichment` equal to *3* or *0* (`1` for experimental double cut implemented by Nicolas Chevaugeon for 2D problems). |
|
|
|
| tls_geom_interface = 2 | **2** for Double Cut to use with `use_enrichment` equal to **5** or **0** , **0** for Simple Cut to use with `use_enrichment` equal to **3** or **0** (**1** for experimental double cut implemented by Nicolas Chevaugeon for 2D problems). |
|
|
|
|
|
|
|
|
|
|
... | ... | @@ -77,13 +92,15 @@ damageinfo.dat is read by DamageInfoParser.h |
|
|
|
|
|
## velocity control:
|
|
|
|
|
|
damage front (level set) displacement control
|
|
|
|
|
|
| **command**| **description**|
|
|
|
|:---------------------------------|:-------------------------------|
|
|
|
| front_advance_algo = 3 | ... |
|
|
|
| k_max = 100. | ... |
|
|
|
| power_law_coef = 100. | ...|
|
|
|
| CFLfactor = 0.25 | ... |
|
|
|
|
|
|
| front_advance_algo = 3 | generally **3**, except for Cohesive Zone Model equivalence where it is **4**. |
|
|
|
| k_max = 100. | maximum value of `kmax`. |
|
|
|
| power_law_coef = 100. | initial value of `kmax`, which may evolve during the TLS process but will be limited by `k_max`(above). Small value induices a global expansion of the damage zone (level set displacment), big value induices propagation arround th process zone (crack tip). Must be big compared to `lc`. See P-E **A level set based model for damage growth: The thick level set approach**, N. Moës, C. Stolz, P.-E. Bernard, N. Chevaugeon, **International Journal For Numerical Methods in Engineering**, 86,pp 358–380, 2011 |
|
|
|
| CFLfactor = 0.25 | the maximum displacement of the damage level set is set to **0.25** times the size of the element on which the displacement is maximum. The value must be between **0.25** and **0.6**.|
|
|
|
| Yx_mean_algo = 0 | method to compute <Y> (average of Y). Default value is **0**.|
|
|
|
|
|
|
|
|
|
|
... | ... | @@ -92,22 +109,36 @@ damageinfo.dat is read by DamageInfoParser.h |
|
|
|
|
|
| **command**| **description**|
|
|
|
|:---------------------------------|:-------------------------------|
|
|
|
| damage_shape = Poly3 | the shape of the function Phi(d). Generally `Poly3 ` except for Cohesive Zone Model equivalence where it is `Poly2revert`|
|
|
|
| hcoef = 0. | ...|
|
|
|
| penalty_coef = 1. | ...|
|
|
|
| radius_factor = .2 | the magnitude of the displacement of the level set will be 0.2 times the characteristic length `lc` of the material |
|
|
|
| damage_shape = Poly3 | the shape of the function Phi(d). Generally `Poly3 ` except for Cohesive Zone Model equivalence where it is `Poly2revert`.|
|
|
|
| hcoef = 0. | coefficient before `alpha_i` variables of the asymmetric traction/compression behavior of the material : **0** means that asymmetric is taken into account, **1** means that the material is symmetric (standard elasticity). Generally **0** or **1** but can be fixed numerically in [0,1]. |
|
|
|
| penalty_coef = 1. | involved in the computation of the field averaging (see Eq.9.a in the paper of A. Salzman 2016). |
|
|
|
| radius_factor = .2 | the initial radius of level set will be set to 0.2 times `lc`. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Octree control
|
|
|
|
|
|
Only used withDamageTestContext <DamageTestOctree> template parameter
|
|
|
| **command**| **description**|
|
|
|
|:---------------------------------|:-------------------------------|
|
|
|
| band_width_octree = 1.5 | ratio of `lc`. Distance arround the damage level set where the mesh is fine. |
|
|
|
| band_width_geo = 1. | default value is **1** |
|
|
|
| band_width_fr = 0.25 | ratio of `lc`. Define mesh refinement where boundary conditions are applied. |
|
|
|
| min_recursion_level = 1 | octree level where mesh is coarse. |
|
|
|
| octree_recursion_level = 6 | octree level where mesh is fine. |
|
|
|
| octree_inter_level = 3 | octree level for transition mesh. |
|
|
|
|
|
|
|
|
|
## search for initiation control:
|
|
|
|
|
|
| **command**| **description**|
|
|
|
|:---------------------------------|:-------------------------------|
|
|
|
| search_for_initiations = -10000 | ... |
|
|
|
| start_with_search_for_initiations = 1 | ... |
|
|
|
| search_at_adapt = 1 | ... |
|
|
|
| search_for_initiations = -10000 | when smaller than **0**, initation zone is automatically computed at the beginning of the job. When greater than **0** the initiation zone is evaluated every `search_for_initiations` iterations. |
|
|
|
| start_with_search_for_initiations = 1 | **1**: start the job with a virgin part and `search_for_initiations` must be less than **0**. **0**: the initiation zone is defined by the level set given in the main file. |
|
|
|
| sphere_radius_search_for_initiations = 0.03 | ratio of `lc` for level set initiation. |
|
|
|
| search_at_adapt = 1 | initation zone is automatically computed every time that the mesh is refined ( only works with octree at now) |
|
|
|
|
|
|
|
|
|
|
... | ... | @@ -116,14 +147,14 @@ damageinfo.dat is read by DamageInfoParser.h |
|
|
|
|
|
| **command**| **description**|
|
|
|
|:---------------------------------|:-------------------------------|
|
|
|
| full_elastic_out = 0 |... |
|
|
|
| load_factor_out = 1 | ...|
|
|
|
| full_elastic_out = 0 | **0**: export mesh without the full-damaged zone (**d=1**). **1**: the zone where **d=1** is meshed for output. |
|
|
|
| load_factor_out = 1 | **1**: fields are ouput by taken into account the load factor. **0** fields are output for the load given in the **main.dat** file |
|
|
|
| output_name = output | ... |
|
|
|
| export_manager = { | Use to export fields descripted in `MyExport(...)` commands in the c++ library |
|
|
|
| displacement 20 | `MyExport("displacement",...)` will be execute every *20* iterations. Synthax *5:20* means every *5* itérations after iteration *20* is reached |
|
|
|
| strain 20 | `MyExport("strain",...)` will be execute every *20* iterations |
|
|
|
| stress 20 | `MyExport("stress",...)` will be execute every *20* iterations |
|
|
|
| isoCrakDamageFront 1 | `MyExport("isoCrakDamageFront",...)` will be execute every *1* iteration |
|
|
|
| damage 5 } | `MyExport("damage",...)` will be execute every *5* iterations |
|
|
|
| displacement 20 | `MyExport("displacement",...)` will be execute every **20** iterations. Synthax **5+23** means every **5** itérations after iteration **23** is reached (then, the first is **25**) |
|
|
|
| strain 20 | `MyExport("strain",...)` will be execute every **20** iterations |
|
|
|
| stress 20 | `MyExport("stress",...)` will be execute every **20** iterations |
|
|
|
| isoCrakDamageFront 1 | `MyExport("isoCrakDamageFront",...)` will be execute every **1** iteration |
|
|
|
| damage 5 } | `MyExport("damage",...)` will be execute every **5** iterations |
|
|
|
| debug_geom 1 | extra verbose prints for debug |
|
|
|
|
|
|
\ No newline at end of file |
|
|
|