Skip to content
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

Default material parameter setting question #170

Closed
DanielChou0916 opened this issue Jun 24, 2024 · 0 comments
Closed

Default material parameter setting question #170

DanielChou0916 opened this issue Jun 24, 2024 · 0 comments

Comments

@DanielChou0916
Copy link

Reason

I would like to simulate the damaged behaviors of Geo-materials.

Design

I'm trying to add the concept of 'material strength' in classic phase field fracture model

Impact

It adds several additional material parameters depending on the failure model.

Details

Dear developers
I have a question about defining the additional parameters, in my header file, there are 5 additional parameters declared:

/// Extra: Friction angle and internal cohesion for Mohr-Coulomb
const ADMaterialProperty & _friction_angle;
const ADMaterialProperty & _internal_cohesion;

/// Extra: additional variables for Hoek-Brown
const ADMaterialProperty & _compressive_strength;
const ADMaterialProperty & _m;
const ADMaterialProperty & _s;

And in my source file, the are constructed as:

params.addParam("friction_angle", "The friction angle for Mohr-Coulomb decomposition");
params.addParam("internal_cohesion", "The internal cohesion for Mohr-Coulomb decomposition");
params.addParam("compressive_strength", "The compressive strength for Hoek-Brown decomposition");
params.addParam("m", "The parameter m for Hoek-Brown decomposition");
params.addParam("s", "The parameter s for Hoek-Brown decomposition");

With:

_friction_angle(getADMaterialPropertyByName(prependBaseName("friction_angle", true))),
_internal_cohesion(getADMaterialPropertyByName(prependBaseName("internal_cohesion", true))),
_compressive_strength(getADMaterialPropertyByName(prependBaseName("compressive_strength", true))),
_m(getADMaterialPropertyByName(prependBaseName("m", true))),
_s(getADMaterialPropertyByName(prependBaseName("s", true))),

However, I found that if I define them in this way, I still need to explicitly specify them even if I do not need them in the calculation.
For instance, then using Mohr-Columb model, I do not need compressive_strength, m and s. But I still need to define them in material, otherwise I'll get an error.

[bulk]
type = ADGenericConstantMaterial
prop_names = 'K G E l ft Gc theta coh compressive_strength m s'
prop_values = '${K} ${G} ${E} ${l} ${ft} ${Gc} ${theta} ${coh} 1 1 1'
[]
[elasticity]
type = GeoSmallDeformationIsotropicElasticity
bulk_modulus = K
shear_modulus = G
phase_field = d
degradation_function = g
decomposition = MOHRCOLUMB
friction_angle = theta
internal_cohesion = coh
compressive_strength=compressive_strength # Actually not used
m=m # Actually not used
s=s # Actually not used
output_properties = 'elastic_strain psie_active psie_II psie_compressive'
outputs = exodus
[]

I'm wondering is it possible to define these material to have default values when they are declared as ADMaterialProperty in the header file?

Thanks for your patience!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant