Calculation Options
The following options are available to control the calculation of the micromechanical models. These options can be set and get with Model[option_name] = value
, Model.option_name = value
, Model[option_name]
, and Model.option_name
, respectively. Model.setOptions and model.options can also be used to set and get the multiple options.
Integration (Integration)
npv
(1e9
)
Number of particles per volume.
radius
(0.65e-3
)
integration_type
(Gauss37
)
Type of the integration. Possible values are:
Gauss37
: Gauss integration with 37x2 points.Gauss61
: Gauss integration with 61x2 points.
Median radius of the particles.
Fabrics (FabricTensor)
fabric_type
(chang1990-ext
)
Type of the fabric tensor. See Fabric Tensors for more information.
fabric_evolution_type
(zhao2020
)
Type of the fabric evolution rule. See Fabric Tensors for more information.
fabric_coefs
({}
)
Coefficients of the fabric evolution rule. The coefficients are specific to the fabric type and fabric evolution rule.
Update parameters before the calculation (Options)
update_void_ratio_from_after_isotropic_loading_to_before
(false
)
Update the void ratio from the end of the isotropic loading step to the beginning of the isotropic loading step. This is useful when the void ratio is given at the beginning of the deviatoric loading step, the void ratio should be updated to the beginning of the isotropic loading step.
update_npv
(false
)
Update the number of particles per volume before the calculation based on the following equation:
update_fabric_coefs
(false
)
Update the fabric coefficients \(M_e\) and \(M_c\) for the zhao2020
fabric evolution rule before the calculation based on the following equations:
Options to control the framework of the model (Options)
kinematic_hypothesis
(false
)
Whether to use the kinematic hypothesis in the calculation. Compared to the static hypothesis, the kinematic hypothesis localize the macroscopic strain to microscopic displacements.
Warning
The kinematic hypothesis is not tested yet.
separate_mean_deviatoric_stress_strain
(false
)
Whether to apply the mean stress and deviatoric stress separately in the mixed load control.
Warning
The separate mean and deviatoric stress is not tested yet.
best_fit_strain_averaging
(true
)
Whether to use the best-fit strain averaging to average the contact displacements to the macroscopic strain.
precise_incremental_volumetric_strain
(false
)
Whether to use the precise incremental volumetric strain to update the void ratio.
increment_plastic_displacement
(false
)
Whether to increment the plastic displacement in the contact law.
use_isotropic_fabric_tensor_in_strain_averaging
(true
)
Whether to use the isotropic fabric tensor in strain averaging.
use_isotropic_fabric_tensor_in_stress_localization
(false
)
Whether to use the isotropic fabric tensor in stress localization.
use_plastic_strain_in_fabric_evolution
(true
)
Whether to use the plastic strain in the fabric evolution rule. The plastic strain is calculated as the difference between the total strain and the elastic strain and may be unstable which may lead to the divergence of the calculation.
ignore_fabric_rotations_for_isotropic_loading
(false
)
Whether to ignore the fabric rotations for the isotropic loading.
ignore_fabric_evolution_for_isotropic_loading
(false
)
Whether to ignore the fabric evolution for the isotropic loading.
ignore_distractions
(true
)
Whether to ignore the distractions in the calculation.
Mixed load convergence criteria (Options)
mixed_load_check_convergence
(true
)
Whether to check the convergence of the mixed load control after reaching maximum iterations.
mixed_load_check_strain_convergence
(true
)
Whether to check the convergence of the strain in the mixed load control.
mixed_load_check_absolute_convergence
(true
)
Whether to check the absolute mixed load tolerance.
mixed_load_absolute_tolerance
(1e-5
)
Absolute tolerance for the mixed load convergence criterion.
mixed_load_relative_tolerance
(1e-3
, 1e-4
for SANISAND contact law)
Relative tolerance for the mixed load convergence criterion.
mixed_load_max_iterations
(100
)
Number of maximum iterations for the mixed load convergence criterion.
mixed_load_max_larger_steps
(-1
)
When the mixed load error becomes larger for this number of steps, the iteration is considered diverged.
Macro-micro integration convergence criteria (Options)
integration_loading_ratio
(1.0
)
Macro-micro integration loading ratio for the contact force and displacement.
integration_substepping_relative_to_increment
(false
)
Whether to use the macro-micro integration substepping relative to the increment of last step.
integration_max_substepping_ratio
(-1.0
, 0.01
for SANISAND contact law)
Maximum macro-micro integration substepping ratio, only valid when it is positive.
integration_min_substepping_ratio
(-1.0
)
Minimum macro-micro integration substepping ratio, only valid when it is positive.
integration_check_convergence
(true
)
Whether to check the convergence of the macro-micro integration after reaching maximum iterations.
integration_check_absolute_convergence
(false
)
Check the absolute contact integration error or the relative contact integration error.
integration_absolute_tolerance
(1e-10
)
Absolute tolerance for the contact integration criterion.
integration_relative_tolerance
(1e-3
)
Relative tolerance for the contact integration criterion.
integration_max_iterations
(100
)
Maximum number of iterations for the macro-micro integration iterations.
Contact convergence criteria (Options)
contact_check_convergence
(true
)
Whether to check the convergence of the contact law after reaching maximum iterations.
contact_tolerance
(1e-10
, 1e-4
for SANISAND contact law)
Tolerance for the contact law of the yield function.
contact_max_iterations
(100
)
Maximum number of iterations for the contact law.
contact_max_increment
(0.1
)
Maximum increment of shear force ratio for the nonlinear elastic contact law.
contact_min_normal_force
(1e-10
)
Minimum normal force that is considered as zero.
contact_friction_angle_combined
(false
)
Whether to use the combined friction angle in the contact law.
contact_friction_angle_weight_mises
(0.0
)
Weight for Von Mises criterion in the friction angle.
contact_friction_angle_weight_tresca
(0.0
)
Weight for Tresca criterion in the friction angle.
contact_friction_angle_weight_mohr_coulomb
(1.0
)
Weight for Mohr-Coulomb criterion in the friction angle.
contact_friction_angle_weight_smp
(0.0
)
Weight for SMP criterion in the friction angle.
contact_check_plastic_multiplier
(true
)
Whether to check the sign of plastic multiplier.
contact_plastic_method_multiplier
(1
)
Multiplier for the contact plastic method.
contact_ensure_force_state_on_yield_surface
(false
)
Whether to ensure the contact state is on the yield surface.
contact_sanisand_constant_hardening_parameter
(true
)
Whether to use constant hardening parameter h for the SANISAND contact law.
contact_sanisand_maintain_yield_surface
(false
)
Whether to maintain the yield surface for the SANISAND contact law.
contact_linear_critical_state_line
(false
)
Whether to use linear critical state line for OSIMSAND contact law.
Options to cache contact state variables (Options)
cache
(true
)
Whether to cache the contact state variables.
cache_precision
(15
)
Precision of the cache.
Options to show verbose information (Options)
disp_steps
(-1
)
Print debug information every disp_steps
steps. If disp_steps
is set to 0 or negative, no debug information is printed.
verbose
(false
)
Print verbose information.
Options for debugging (Options)
debug
(false
)
Whether to record the debug variables. Specific debug variables should be defined in Model.setupDebugVariable method.
run_steps
(-1
)
Only run the first run_steps
steps. If run_steps
is set to 0 or negative, run all steps.
run_mixed_load_steps
(-1
)
Only run the first run_mixed_load_steps
steps in the mixed load control. If run_mixed_load_steps
is set to 0 or negative, run all steps.
run_contact_integration_steps
(-1
)
Only run the first run_contact_integration_steps
steps in the contact integration. If run_contact_integration_steps
is set to 0 or negative, run all steps.