OGS
InjectionProduction1D_python.prj
<OpenGeoSysProject>
  <meshes>
    <mesh>mesh_domain.vtu</mesh>
    <mesh>mesh_production.vtu</mesh>
    <mesh>mesh_injection.vtu</mesh>
    <mesh>mesh_top.vtu</mesh>
    <mesh>mesh_bottom.vtu</mesh>
    <mesh>mesh_left.vtu</mesh>
    <mesh>mesh_right.vtu</mesh>
  </meshes>
  <python_script>python_boundary_staggered.py</python_script>
  <processes>
    <process>
      <name>InjectionProduction1D</name>
      <type>HYDRO_MECHANICS</type>
      <coupling_scheme>
        <type>staggered</type>
      </coupling_scheme>
      <integration_order>3</integration_order>
      <constitutive_relation>
        <type>LinearElasticIsotropic</type>
        <youngs_modulus>E</youngs_modulus>
        <poissons_ratio>nu</poissons_ratio>
      </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="epsilon" output_name="epsilon" />
        <secondary_variable internal_name="velocity" output_name="velocity" />
      </secondary_variables>
      <specific_body_force>0 0</specific_body_force>
    </process>
  </processes>
  <media>
    <medium>
      <phases>
        <phase>
          <type>Gas</type>
          <properties>
            <property>
              <name>viscosity</name>
              <type>Constant</type>
              <value>1.0e-3</value>
            </property>
            <property>
              <name>density</name>
              <type>Linear</type>
              <reference_value>1.0e3</reference_value>
              <independent_variable>
                <variable_name>gas_phase_pressure</variable_name>
                <reference_condition>2.125e6</reference_condition>
                <slope>2.75e-8</slope>
              </independent_variable>
            </property>
          </properties>
        </phase>
        <phase>
          <type>Solid</type>
          <properties>
            <property>
              <name>density</name>
              <type>Constant</type>
              <value>3.0e3</value>
            </property>
          </properties>
        </phase>
      </phases>
      <properties>
        <property>
          <name>porosity</name>
          <type>Constant</type>
          <value>0.3</value>
        </property>
        <property>
          <name>biot_coefficient</name>
          <type>Constant</type>
          <value>1.0</value>
        </property>
        <property>
          <name>reference_temperature</name>
          <type>Constant</type>
          <value>293.15</value>
        </property>
        <property>
          <name>permeability</name>
          <type>Constant</type>
          <value>493.5e-16</value>
        </property>
      </properties>
    </medium>
  </media>
  <time_loop>
    <global_process_coupling>
      <max_iter>100</max_iter>
      <convergence_criteria>
        <convergence_criterion>
          <type>DeltaX</type>
          <norm_type>NORM2</norm_type>
          <abstol>1.e-7</abstol>
        </convergence_criterion>
        <convergence_criterion>
          <type>DeltaX</type>
          <norm_type>NORM2</norm_type>
          <abstol>1.e-14</abstol>
        </convergence_criterion>
      </convergence_criteria>
    </global_process_coupling>
    <processes>
      <process ref="InjectionProduction1D">
        <nonlinear_solver>basic_newton_p</nonlinear_solver>
        <convergence_criterion>
          <type>DeltaX</type>
          <norm_type>NORM2</norm_type>
          <abstol>1e-8</abstol>
        </convergence_criterion>
        <time_discretization>
          <type>BackwardEuler</type>
        </time_discretization>
        <time_stepping>
          <type>FixedTimeStepping</type>
          <t_initial>0</t_initial>
          <t_end>86.4e3</t_end>
          <timesteps>
            <pair>
              <repeat>1</repeat>
              <delta_t>86.4e3</delta_t>
            </pair>
          </timesteps>
        </time_stepping>
      </process>
      <process ref="InjectionProduction1D">
        <nonlinear_solver>basic_newton_u</nonlinear_solver>
        <convergence_criterion>
          <type>PerComponentDeltaX</type>
          <norm_type>NORM2</norm_type>
          <abstols>1e-15 1e-15</abstols>
        </convergence_criterion>
        <time_discretization>
          <type>BackwardEuler</type>
        </time_discretization>
        <time_stepping>
          <type>FixedTimeStepping</type>
          <t_initial>0</t_initial>
          <t_end>86.4e3</t_end>
          <timesteps>
            <pair>
              <repeat>1</repeat>
              <delta_t>86.4e3</delta_t>
            </pair>
          </timesteps>
        </time_stepping>
      </process>
    </processes>
    <output>
      <type>VTK</type>
      <prefix>InjectionProduction1D_Python</prefix>
      <variables>
        <variable>displacement</variable>
        <variable>pressure</variable>
        <variable>sigma</variable>
        <variable>epsilon</variable>
        <variable>velocity</variable>
      </variables>
      <suffix>ts{:timestep}_t_{:time}</suffix>
    </output>
  </time_loop>
  <parameters>
    <parameter>
      <name>E</name>
      <type>Constant</type>
      <value>300.0e6</value>
    </parameter>
    <parameter>
      <name>nu</name>
      <type>Constant</type>
      <value>0.0</value>
    </parameter>
    <parameter>
      <name>zero_vector_2d</name>
      <type>Constant</type>
      <values>0 0</values>
    </parameter>
    <parameter>
      <name>pressure_ic</name>
      <type>Constant</type>
      <values>2.125e6</values>
    </parameter>
  </parameters>
  <process_variables>
    <process_variable>
      <name>pressure</name>
      <components>1</components>
      <order>1</order>
      <initial_condition>pressure_ic</initial_condition>
      <source_terms>
        <source_term>
          <type>Python</type>
          <mesh>mesh_production</mesh>
          <source_term_object>production</source_term_object>
          <flush_stdout>true</flush_stdout>
        </source_term>
        <source_term>
          <type>Python</type>
          <mesh>mesh_injection</mesh>
          <source_term_object>injection</source_term_object>
          <flush_stdout>true</flush_stdout>
        </source_term>
      </source_terms>
    </process_variable>
    <process_variable>
      <name>displacement</name>
      <components>2</components>
      <order>2</order>
      <initial_condition>zero_vector_2d</initial_condition>
      <boundary_conditions>
        <boundary_condition>
          <type>Python</type>
          <mesh>mesh_left</mesh>
          <component>0</component>
          <bc_object>bc_u_D</bc_object>
        </boundary_condition>
        <boundary_condition>
          <type>Python</type>
          <mesh>mesh_right</mesh>
          <component>0</component>
          <bc_object>bc_u_D</bc_object>
        </boundary_condition>
        <boundary_condition>
          <type>Python</type>
          <mesh>mesh_bottom</mesh>
          <component>1</component>
          <bc_object>bc_u_D</bc_object>
        </boundary_condition>
        <boundary_condition>
          <type>Python</type>
          <mesh>mesh_top</mesh>
          <component>1</component>
          <bc_object>bc_u_N</bc_object>
        </boundary_condition>
      </boundary_conditions>
    </process_variable>
  </process_variables>
  <nonlinear_solvers>
    <nonlinear_solver>
      <name>basic_newton_p</name>
      <type>Newton</type>
      <max_iter>100</max_iter>
      <linear_solver>linear_solver_p</linear_solver>
    </nonlinear_solver>
    <nonlinear_solver>
      <name>basic_newton_u</name>
      <type>Newton</type>
      <max_iter>100</max_iter>
      <linear_solver>linear_solver_u</linear_solver>
    </nonlinear_solver>
  </nonlinear_solvers>
  <linear_solvers>
    <linear_solver>
      <name>linear_solver_p</name>
      <eigen>
        <solver_type>SparseLU</solver_type>
        <precon_type>DIAGONAL</precon_type>
      </eigen>
    </linear_solver>
    <linear_solver>
      <name>linear_solver_u</name>
      <eigen>
        <solver_type>SparseLU</solver_type>
        <precon_type>DIAGONAL</precon_type>
      </eigen>
    </linear_solver>
  </linear_solvers>
</OpenGeoSysProject>