OGS
double_porosity_swelling_RM.prj
<OpenGeoSysProject>
  <mesh axially_symmetric="true">square_1x1_quad_1e0.vtu</mesh>
  <geometry>square_1x1.gml</geometry>
  <python_script>pythonBC_double_porosity_swelling.py</python_script>
  <processes>
    <process>
      <name>RM</name>
      <type>RICHARDS_MECHANICS</type>
      <integration_order>2</integration_order>
      <micro_porosity>
        <mass_exchange_coefficient>5e-15</mass_exchange_coefficient>
        <nonlinear_solver>
          <maximum_iterations>100</maximum_iterations>
          <residuum_tolerance>1e-8</residuum_tolerance>
          <increment_tolerance>1e-20</increment_tolerance>
        </nonlinear_solver>
      </micro_porosity>
      <constitutive_relation>
        <type>MFront</type>
        <behaviour>ModCamClay_semiExpl</behaviour>
        <material_properties>
          <material_property name="PoissonRatio" parameter="nu" />
          <material_property name="CriticalStateLineSlope" parameter="M" />
          <material_property name="SwellingLineSlope" parameter="ka" />
          <material_property name="VirginConsolidationLineSlope" parameter="la" />
          <material_property name="CharacteristicPreConsolidationPressure" parameter="pc0" />
          <material_property name="InitialVolumeRatio" parameter="v0" />
        </material_properties>
        <initial_values>
          <state_variable name="PreConsolidationPressure" parameter="pc0" />
          <state_variable name="VolumeRatio" parameter="v0" />
        </initial_values>
      </constitutive_relation>
      <process_variables>
        <pressure>pressure</pressure>
        <displacement>displacement</displacement>
      </process_variables>
      <secondary_variables>
        <secondary_variable internal_name="sigma" output_name="sigma" />
        <secondary_variable internal_name="swelling_stress" output_name="swelling_stress" />
        <secondary_variable internal_name="epsilon" output_name="epsilon" />
        <secondary_variable internal_name="velocity" output_name="velocity" />
        <secondary_variable internal_name="saturation" output_name="saturation" />
        <secondary_variable internal_name="porosity" output_name="porosity" />
        <secondary_variable internal_name="transport_porosity" output_name="transport_porosity" />
        <secondary_variable internal_name="dry_density_solid" output_name="dry_density_solid" />
        <secondary_variable internal_name="micro_saturation" output_name="micro_saturation" />
        <secondary_variable internal_name="micro_pressure" output_name="micro_pressure" />
        <secondary_variable internal_name="EquivalentPlasticStrain" output_name="EquivalentPlasticStrain" />
        <secondary_variable internal_name="PreConsolidationPressure" output_name="PreConsolidationPressure" />
        <secondary_variable internal_name="PlasticVolumetricStrain" output_name="PlasticVolumetricStrain" />
        <secondary_variable internal_name="VolumeRatio" output_name="VolumeRatio" />
        <secondary_variable internal_name="ElasticStrain" output_name="ElasticStrain" />
      </secondary_variables>
      <specific_body_force>0 0</specific_body_force>
      <initial_stress>sigma0</initial_stress>
      <mass_lumping>false</mass_lumping>
    </process>
  </processes>
  <media>
    <medium>
      <phases>
        <phase>
          <type>AqueousLiquid</type>
          <properties>
            <property>
              <name>viscosity</name>
              <type>Constant</type>
              <value>1e-3</value>
            </property>
            <property>
              <name>density</name>
              <type>Constant</type>
              <value>1e3</value>
            </property>
          </properties>
        </phase>
        <phase>
          <type>Solid</type>
          <properties>
            <property>
              <name>density</name>
              <type>Constant</type>
              <value>2780</value>
            </property>
            <property>
              <name>swelling_stress_rate</name>
              <type>SaturationDependentSwelling</type>
              <swelling_pressures>13e6 13e6 13e6</swelling_pressures>
              <exponents>1 1 1</exponents>
              <lower_saturation_limit>0</lower_saturation_limit>
              <upper_saturation_limit>1</upper_saturation_limit>
            </property>
          </properties>
        </phase>
      </phases>
      <properties>
        <property>
          <name>biot_coefficient</name>
          <type>Constant</type>
          <value>0.6</value>
        </property>
        <property>
          <name>permeability</name>
          <type>Constant</type>
          <value>2e-21</value>
        </property>
        <property>
          <name>transport_porosity</name>
          <type>TransportPorosityFromMassBalance</type>
          <initial_porosity>phi_tr0</initial_porosity>
          <minimal_porosity>0</minimal_porosity>
          <maximal_porosity>1</maximal_porosity>
        </property>
        <property>
          <name>porosity</name>
          <type>PorosityFromMassBalance</type>
          <initial_porosity>phi0</initial_porosity>
          <minimal_porosity>0</minimal_porosity>
          <maximal_porosity>1</maximal_porosity>
        </property>
        <property>
          <name>reference_temperature</name>
          <type>Constant</type>
          <value>293.15</value>
        </property>
        <property>
          <name>relative_permeability</name>
          <type>Constant</type>
          <value>1</value>
        </property>
        <property>
          <name>saturation</name>
          <type>SaturationVanGenuchten</type>
          <residual_liquid_saturation>0</residual_liquid_saturation>
          <residual_gas_saturation>0</residual_gas_saturation>
          <exponent>0.4</exponent>
          <p_b>15e6</p_b>
        </property>
        <property>
          <name>saturation_micro</name>
          <type>SaturationVanGenuchten</type>
          <residual_liquid_saturation>0</residual_liquid_saturation>
          <residual_gas_saturation>0</residual_gas_saturation>
          <exponent>0.4</exponent>
          <p_b>300e6</p_b>
        </property>
        <property>
          <name>bishops_effective_stress</name>
          <type>BishopsSaturationCutoff</type>
          <cutoff_value>1</cutoff_value>
        </property>
      </properties>
    </medium>
  </media>
  <parameters>
    <parameter>
      <name>nu</name>
      <type>Constant</type>
      <value>0.2</value>
    </parameter>
    <parameter>
      <name>M</name>
      <type>Constant</type>
      <value>1.0</value>
    </parameter>
    <parameter>
      <name>la</name>
      <type>Constant</type>
      <value>2.9e-2</value>
    </parameter>
    <parameter>
      <name>ka</name>
      <type>Constant</type>
      <value>2.0e-2</value>
    </parameter>
    <parameter>
      <name>pc0</name>
      <type>Constant</type>
      <value>1e9</value>
    </parameter>
    <parameter>
      <name>v0</name>
      <type>Constant</type>
      <value>1.6667</value>
    </parameter>
    <parameter>
      <name>phi0</name>
      <type>Constant</type>
      <value>0.4</value>
    </parameter>
    <parameter>
      <name>phi_tr0</name>
      <type>Constant</type>
      <value>0.3</value>
    </parameter>
    <parameter>
      <name>displacement0</name>
      <type>Constant</type>
      <values>0 0</values>
    </parameter>
    <parameter>
      <name>sigma0</name>
      <type>Function</type>
      <expression>-2.e7</expression>
      <expression>-2.e7</expression>
      <expression>-2.e7</expression>
      <expression>0</expression>
    </parameter>
    <parameter>
      <name>pressure0</name>
      <type>Constant</type>
      <value>1e8</value>
    </parameter>
    <parameter>
      <name>dirichlet0</name>
      <type>Constant</type>
      <value>0</value>
    </parameter>
  </parameters>
  <process_variables>
    <process_variable>
      <name>displacement</name>
      <components>2</components>
      <order>1</order>
      <initial_condition>displacement0</initial_condition>
      <boundary_conditions>
        <boundary_condition>
          <geometrical_set>square_1x1_geometry</geometrical_set>
          <geometry>left</geometry>
          <type>Dirichlet</type>
          <component>0</component>
          <parameter>dirichlet0</parameter>
        </boundary_condition>
        <boundary_condition>
          <geometrical_set>square_1x1_geometry</geometrical_set>
          <geometry>right</geometry>
          <type>Dirichlet</type>
          <component>0</component>
          <parameter>dirichlet0</parameter>
        </boundary_condition>
        <boundary_condition>
          <geometrical_set>square_1x1_geometry</geometrical_set>
          <geometry>top</geometry>
          <type>Dirichlet</type>
          <component>1</component>
          <parameter>dirichlet0</parameter>
        </boundary_condition>
        <boundary_condition>
          <geometrical_set>square_1x1_geometry</geometrical_set>
          <geometry>bottom</geometry>
          <type>Dirichlet</type>
          <component>1</component>
          <parameter>dirichlet0</parameter>
        </boundary_condition>
      </boundary_conditions>
    </process_variable>
    <process_variable>
      <name>pressure</name>
      <components>1</components>
      <order>1</order>
      <initial_condition>pressure0</initial_condition>
      <boundary_conditions>
        <boundary_condition>
          <mesh>square_1x1_quad_1e0</mesh>
          <type>Python</type>
          <bc_object>InitialPressureJump_py</bc_object>
        </boundary_condition>
      </boundary_conditions>
    </process_variable>
  </process_variables>
  <time_loop>
    <processes>
      <process ref="RM">
        <nonlinear_solver>nonlinear_solver</nonlinear_solver>
        <convergence_criterion>
          <norm_type>NORM2</norm_type>
          <type>PerComponentDeltaX</type>
          <abstols>2e-7 1e-13 1e-13</abstols>
        </convergence_criterion>
        <time_discretization>
          <type>BackwardEuler</type>
        </time_discretization>
        <time_stepping>
          <type>FixedTimeStepping</type>
          <t_initial>0</t_initial>
          <t_end>1e5</t_end>
          <timesteps>
            <pair>
              <repeat>10</repeat>
              <delta_t>1e1</delta_t>
            </pair>
            <pair>
              <repeat>9</repeat>
              <delta_t>1e2</delta_t>
            </pair>
            <pair>
              <repeat>9</repeat>
              <delta_t>1e3</delta_t>
            </pair>
            <pair>
              <repeat>9</repeat>
              <delta_t>1e4</delta_t>
            </pair>
          </timesteps>
        </time_stepping>
      </process>
    </processes>
    <output>
      <type>VTK</type>
      <prefix>double_porosity_swelling</prefix>
      <suffix>t{:time}</suffix>
      <fixed_output_times>1e2 1e3 1e4 2e4 3e4 4e4 5e4 6e4 7e4 8e4 9e4</fixed_output_times>
      <variables>
        <variable>displacement</variable>
        <variable>pressure</variable>
        <variable>sigma</variable>
        <variable>swelling_stress</variable>
        <variable>epsilon</variable>
        <variable>velocity</variable>
        <variable>saturation</variable>
        <variable>porosity</variable>
        <variable>transport_porosity</variable>
        <variable>dry_density_solid</variable>
        <variable>micro_saturation</variable>
        <variable>micro_pressure</variable>
        <variable>macro_pressure</variable>
        <variable>EquivalentPlasticStrain</variable>
        <variable>PreConsolidationPressure</variable>
        <variable>PlasticVolumetricStrain</variable>
        <variable>VolumeRatio</variable>
        <variable>ElasticStrain</variable>
      </variables>
    </output>
  </time_loop>
  <nonlinear_solvers>
    <nonlinear_solver>
      <name>nonlinear_solver</name>
      <type>Newton</type>
      <max_iter>30</max_iter>
      <linear_solver>general_linear_solver</linear_solver>
    </nonlinear_solver>
  </nonlinear_solvers>
  <linear_solvers>
    <linear_solver>
      <name>general_linear_solver</name>
      <eigen>
        <solver_type>SparseLU</solver_type>
        <scaling>true</scaling>
      </eigen>
    </linear_solver>
  </linear_solvers>
  <test_definition>
    <vtkdiff>
      <regex>double_porosity_swelling_t_.*.vtu</regex>
      <field>pressure</field>
      <absolute_tolerance>1e-14</absolute_tolerance>
      <relative_tolerance>1e-14</relative_tolerance>
    </vtkdiff>
    <vtkdiff>
      <regex>double_porosity_swelling_t_.*.vtu</regex>
      <field>displacement</field>
      <absolute_tolerance>1e-15</absolute_tolerance>
      <relative_tolerance>0</relative_tolerance>
    </vtkdiff>
    <vtkdiff>
      <regex>double_porosity_swelling_t_.*.vtu</regex>
      <field>sigma</field>
      <absolute_tolerance>1e-7</absolute_tolerance>
      <relative_tolerance>0</relative_tolerance>
    </vtkdiff>
    <vtkdiff>
      <regex>double_porosity_swelling_t_.*.vtu</regex>
      <field>epsilon</field>
      <absolute_tolerance>1e-15</absolute_tolerance>
      <relative_tolerance>0</relative_tolerance>
    </vtkdiff>
    <vtkdiff>
      <regex>double_porosity_swelling_t_.*.vtu</regex>
      <field>swelling_stress</field>
      <absolute_tolerance>5e-8</absolute_tolerance>
      <relative_tolerance>0</relative_tolerance>
    </vtkdiff>
    <vtkdiff>
      <regex>double_porosity_swelling_t_.*.vtu</regex>
      <field>micro_pressure</field>
      <absolute_tolerance>1e-6</absolute_tolerance>
      <relative_tolerance>0</relative_tolerance>
    </vtkdiff>
    <vtkdiff>
      <regex>double_porosity_swelling_t_.*.vtu</regex>
      <field>micro_saturation</field>
      <absolute_tolerance>1e-14</absolute_tolerance>
      <relative_tolerance>0</relative_tolerance>
    </vtkdiff>
    <vtkdiff>
      <regex>double_porosity_swelling_t_.*.vtu</regex>
      <field>saturation</field>
      <absolute_tolerance>1e-14</absolute_tolerance>
      <relative_tolerance>0</relative_tolerance>
    </vtkdiff>
    <vtkdiff>
      <regex>double_porosity_swelling_t_.*.vtu</regex>
      <field>ElasticStrain</field>
      <absolute_tolerance>1e-14</absolute_tolerance>
      <relative_tolerance>0</relative_tolerance>
    </vtkdiff>
    <vtkdiff>
      <regex>double_porosity_swelling_t_.*.vtu</regex>
      <field>EquivalentPlasticStrain</field>
      <absolute_tolerance>1e-14</absolute_tolerance>
      <relative_tolerance>0</relative_tolerance>
    </vtkdiff>
    <vtkdiff>
      <regex>double_porosity_swelling_t_.*.vtu</regex>
      <field>PlasticVolumetricStrain</field>
      <absolute_tolerance>1e-14</absolute_tolerance>
      <relative_tolerance>0</relative_tolerance>
    </vtkdiff>
    <vtkdiff>
      <regex>double_porosity_swelling_t_.*.vtu</regex>
      <field>VolumeRatio</field>
      <absolute_tolerance>1e-14</absolute_tolerance>
      <relative_tolerance>0</relative_tolerance>
    </vtkdiff>
    <vtkdiff>
      <regex>double_porosity_swelling_t_.*.vtu</regex>
      <field>PreConsolidationPressure</field>
      <absolute_tolerance>2e-6</absolute_tolerance>
      <relative_tolerance>0</relative_tolerance>
    </vtkdiff>
  </test_definition>
</OpenGeoSysProject>