Skip to content

Commit 1ea3dc3

Browse files
committed
Merge branch 'trm-bentonite-tests' into 'master'
[TRM] Tests for a bentonite material model (implemented in generalmod, used via MFront) See merge request ogs/ogs!5083
2 parents 2c94b1c + 9a1f09f commit 1ea3dc3

File tree

90 files changed

+10834
-15
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+10834
-15
lines changed

Documentation/.vale/Vocab/ogs/accept.txt

+8
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,10 @@ frontmatter
5555
Futurile
5656
Galerkin
5757
Genuchten
58+
generalmod
5859
Geoenergy
60+
Geotechnica
61+
Gerasimov
5962
Giraldo
6063
gml
6164
GML
@@ -67,11 +70,13 @@ Guix
6770
Guo
6871
Haibing
6972
Heidemann
73+
Helfer
7074
Hoek
7175
Hoek-Brown
7276
Homebrew
7377
Horner
7478
hyperelastic
79+
Hypoplasticity
7580
IC[s]
7681
IPhreeqc
7782
ipynb
@@ -158,6 +163,7 @@ SGrid
158163
Shao
159164
Shil
160165
shortcode
166+
Simo
161167
Snakemake
162168
Srivastava
163169
ST[s?]
@@ -172,12 +178,14 @@ Taucha
172178
Technische
173179
TESPy
174180
Theis
181+
Thermohydromechanical
175182
Thomas
176183
Thuringia
177184
Thuringian
178185
Thury
179186
TODO[s?]
180187
Tresca
188+
Tymofiy
181189
Ucar
182190
Unlicense
183191
Unstrut

ProcessLib/ThermoRichardsMechanics/CreateThermoRichardsMechanicsProcess.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ void checkMPLProperties(
4040
std::array const required_medium_properties = {
4141
MaterialPropertyLib::porosity, MaterialPropertyLib::biot_coefficient,
4242
MaterialPropertyLib::bishops_effective_stress,
43-
MaterialPropertyLib::relative_permeability,
44-
MaterialPropertyLib::saturation};
43+
MaterialPropertyLib::relative_permeability};
4544
std::array const required_liquid_properties = {
4645
MaterialPropertyLib::viscosity, MaterialPropertyLib::density};
4746
std::array const required_solid_properties = {MaterialPropertyLib::density};

ProcessLib/ThermoRichardsMechanics/Tests.cmake

+11
Original file line numberDiff line numberDiff line change
@@ -498,6 +498,17 @@ if(OGS_USE_MFRONT)
498498
mfront_A2_ts_76_t_2764800.000000.vtu A2_effective_stess0_test_ts_76_t_2764800.000000.vtu sigma_total sigma_total 6e-8 1e-8
499499
)
500500
endif()
501+
502+
add_subdirectory("${CMAKE_SOURCE_DIR}/Tests/Data/ThermoRichardsMechanics/MFront/BentoniteBehaviourGeneralMod/MFrontBehaviour/" "${CMAKE_BINARY_DIR}/Tests/Data/ThermoRichardsMechanics/MFront/BentoniteBehaviourGeneralMod/MFrontBehaviour/")
503+
504+
OgsTest(PROJECTFILE ThermoRichardsMechanics/MFront/BentoniteBehaviourGeneralMod/0d_confined_compression/confined_compression.prj RUNTIME 60)
505+
OgsTest(PROJECTFILE ThermoRichardsMechanics/MFront/BentoniteBehaviourGeneralMod/0d_resaturation/resaturation.prj RUNTIME 10)
506+
507+
OgsTest(PROJECTFILE ThermoRichardsMechanics/MFront/BentoniteBehaviourGeneralMod/1d_column_resaturation/bentonite_column.prj RUNTIME 800)
508+
509+
OgsTest(PROJECTFILE ThermoRichardsMechanics/MFront/BentoniteBehaviourGeneralMod/1d_column_restart/bentonite_column_restart.xml RUNTIME 10)
510+
OgsTest(PROJECTFILE ThermoRichardsMechanics/MFront/BentoniteBehaviourGeneralMod/1d_column_restart/bentonite_column_restart_fail.xml PROPERTIES PASS_REGULAR_EXPRESSION "Absolute and relative error [(]maximum norm[)] are larger than the corresponding thresholds 8[.]000000000000000e-03 and 2[.]000000000000000e-02[.]
511+
" RUNTIME 10)
501512
endif()
502513

503514
if (NOT OGS_USE_MPI)

ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM-impl.h

+24-12
Original file line numberDiff line numberDiff line change
@@ -127,25 +127,37 @@ void ThermoRichardsMechanicsLocalAssembler<
127127
NumLib::shapeFunctionInterpolate(-p_L, N, p_cap_ip);
128128

129129
MPL::VariableArray variables;
130-
variables.capillary_pressure = p_cap_ip;
131-
variables.liquid_phase_pressure = -p_cap_ip;
132-
// setting pG to 1 atm
133-
// TODO : rewrite equations s.t. p_L = pG-p_cap
134-
variables.gas_phase_pressure = 1.0e5;
135-
variables.temperature = T_ip;
136-
137-
double const S_L =
138-
medium.property(MPL::PropertyType::saturation)
139-
.template value<double>(variables, x_position, t, dt);
140-
std::get<PrevState<SaturationData>>(this->prev_states_[ip])->S_L = S_L;
130+
131+
if (medium.hasProperty(MPL::PropertyType::saturation))
132+
{
133+
variables.capillary_pressure = p_cap_ip;
134+
variables.liquid_phase_pressure = -p_cap_ip;
135+
// setting pG to 1 atm
136+
// TODO : rewrite equations s.t. p_L = pG-p_cap
137+
variables.gas_phase_pressure = 1.0e5;
138+
variables.temperature = T_ip;
139+
140+
double const S_L =
141+
medium.property(MPL::PropertyType::saturation)
142+
.template value<double>(variables, x_position, t, dt);
143+
std::get<PrevState<SaturationData>>(this->prev_states_[ip])->S_L =
144+
S_L;
145+
146+
variables.liquid_saturation = S_L;
147+
}
141148

142149
constitutive_setting.init(models, t, dt, x_position, media_data,
143150
{T_ip, 0, {}}, this->current_states_[ip],
144151
this->prev_states_[ip]);
145152

146153
if (this->process_data_.initial_stress.value)
147154
{
148-
variables.liquid_saturation = S_L;
155+
if (!medium.hasProperty(MPL::PropertyType::saturation))
156+
{
157+
OGS_FATAL(
158+
"The medium has no saturation property required to compute "
159+
"initial stress.");
160+
}
149161
convertInitialStressType(ip, t, x_position, medium, variables,
150162
-p_cap_ip);
151163
}

0 commit comments

Comments
 (0)