OGS
2Phase_wellbore_small_newton.prj
<OpenGeoSysProject>
  <mesh>2Phase_wellbore_vertical_qua.vtu</mesh>
  <geometry>2Phase_wellbore_small.gml</geometry>
  <processes>
    <process>
      <name>WellboreSimulator</name>
      <type>WELLBORE_SIMULATOR</type>
      <integration_order>4</integration_order>
      <process_variables>
        <pressure>p</pressure>
        <velocity>v</velocity>
        <specific_enthalpy>h</specific_enthalpy>
      </process_variables>
      <jacobian_assembler>
        <type>CentralDifferences</type>
        <component_magnitudes>1e6 0.1 4e5</component_magnitudes>
        <relative_epsilons>1e-8 1e-7 1e-13</relative_epsilons>
      </jacobian_assembler>
      <specific_body_force>-9.81</specific_body_force>
      <secondary_variables>
        <secondary_variable internal_name="vapor_mass_flow_rate" output_name="vapor_mass_flow_rate" />
        <secondary_variable internal_name="liquid_mass_flow_rate" output_name="liquid_mass_flow_rate" />
        <secondary_variable internal_name="temperature" output_name="temperature" />
        <secondary_variable internal_name="dryness" output_name="dryness" />
        <secondary_variable internal_name="vapor_volume_fraction" output_name="vapor_volume_fraction" />
      </secondary_variables>
      <wellbore>
        <length>20</length>
        <diameter>d</diameter>
        <casing_thickness>t_ca</casing_thickness>
        <pipe_thickness>t_p</pipe_thickness>
        <roughness>xi</roughness>
      </wellbore>
      <wellbore_ref_pressure>p_0</wellbore_ref_pressure>
      <wellbore_ref_enthalpy>h_0</wellbore_ref_enthalpy>
      <heat_exchange_with_formation>false</heat_exchange_with_formation>
      <reservoir_properties>
        <temperature>T_r</temperature>
        <thermal_conductivity>k_r</thermal_conductivity>
        <density>rho_r</density>
        <specific_heat_capacity>c_r</specific_heat_capacity>
        <pressure>p_r</pressure>
      </reservoir_properties>
      <productivity_index>PI</productivity_index>
    </process>
  </processes>
  <media>
    <medium id="0">
      <phases>
        <phase>
          <type>AqueousLiquid</type>
          <properties>
            <property>
              <name>density</name>
              <type>WaterDensityIAPWSIF97Region1</type>
            </property>
            <property>
              <name>saturation_density</name>
              <type>WaterLiquidDensityIAPWSIF97Region4</type>
            </property>
            <property>
              <name>saturation_enthalpy</name>
              <type>WaterLiquidEnthalpyIAPWSIF97Region4</type>
            </property>
            <property>
              <name>temperature</name>
              <type>WaterTemperatureIAPWSIF97Region1</type>
            </property>
            <property>
              <name>enthalpy</name>
              <type>WaterEnthalpyIAPWSIF97Region1</type>
            </property>
            <property>
              <name>viscosity</name>
              <type>WaterViscosityIAPWS</type>
            </property>
          </properties>
        </phase>
        <phase>
          <type>Gas</type>
          <properties>
            <property>
              <name>saturation_density</name>
              <type>WaterVapourDensityIAPWSIF97Region4</type>
            </property>
            <property>
              <name>saturation_enthalpy</name>
              <type>WaterVapourEnthalpyIAPWSIF97Region4</type>
            </property>
            <property>
              <name>saturation_temperature</name>
              <type>WaterSaturationTemperatureIAPWSIF97Region4</type>
            </property>
            <property>
              <name>viscosity</name>
              <type>WaterViscosityIAPWS</type>
            </property>
          </properties>
        </phase>
      </phases>
    </medium>
  </media>
  <parameters>
    <parameter>
      <name>d</name>
      <type>Constant</type>
      <value>0.12</value>
    </parameter>
    <parameter>
      <name>t_ca</name>
      <type>Constant</type>
      <value>0.01</value>
    </parameter>
    <parameter>
      <name>t_p</name>
      <type>Constant</type>
      <value>0.005</value>
    </parameter>
    <parameter>
      <name>xi</name>
      <type>Constant</type>
      <value>1.5e-3</value>
    </parameter>
    <parameter>
      <name>T_r</name>
      <type>Constant</type>
      <value>333</value>
    </parameter>
    <parameter>
      <name>k_r</name>
      <type>Constant</type>
      <value>2.1</value>
    </parameter>
    <parameter>
      <name>rho_r</name>
      <type>Constant</type>
      <value>2650</value>
    </parameter>
    <parameter>
      <name>c_r</name>
      <type>Constant</type>
      <value>1250</value>
    </parameter>
    <parameter>
      <name>p_r</name>
      <type>Constant</type>
      <value>1e6</value>
    </parameter>
    <parameter>
      <name>PI</name>
      <type>Constant</type>
      <value>0</value>
    </parameter>
    <parameter>
      <name>p_0</name>
      <type>Constant</type>
      <value>3.5e5</value>
    </parameter>
    <parameter>
      <name>v_0</name>
      <type>Constant</type>
      <value>0</value>
    </parameter>
    <parameter>
      <name>h_0</name>
      <type>Constant</type>
      <value>2e5</value>
    </parameter>
    <parameter>
      <name>p_Dirichlet_bottom</name>
      <type>Constant</type>
      <value>3.5e5</value>
    </parameter>
    <parameter>
      <name>v_Dirichlet_top</name>
      <type>Constant</type>
      <value>0.3208</value>
    </parameter>
    <parameter>
      <name>h_Dirichlet_bottom</name>
      <type>Constant</type>
      <value>5.4e5</value>
    </parameter>
  </parameters>
  <time_loop>
    <processes>
      <process ref="WellboreSimulator">
        <nonlinear_solver>basic_newton</nonlinear_solver>
        <convergence_criterion>
          <type>DeltaX</type>
          <norm_type>NORM2</norm_type>
          <reltol>1e-6</reltol>
        </convergence_criterion>
        <time_discretization>
          <type>BackwardEuler</type>
        </time_discretization>
        <time_stepping>
          <type>IterationNumberBasedTimeStepping</type>
          <t_initial>0.0</t_initial>
          <t_end>3e4</t_end>
          <initial_dt>0.1</initial_dt>
          <minimum_dt>0.01</minimum_dt>
          <maximum_dt>600</maximum_dt>
          <number_iterations>4 6 10 12 14 20</number_iterations>
          <multiplier>6 5 0.95 1.1 1.5 2</multiplier>
        </time_stepping>
      </process>
    </processes>
    <output>
      <type>VTK</type>
      <prefix>Wellbore_simulator_2Phase</prefix>
      <variables>
        <variable>p</variable>
        <variable>v</variable>
        <variable>h</variable>
        <variable>vapor_mass_flow_rate</variable>
        <variable>liquid_mass_flow_rate</variable>
        <variable>mix_density</variable>
        <variable>temperature</variable>
        <variable>dryness</variable>
        <variable>vapor_volume_fraction</variable>
      </variables>
      <suffix>t{:time}</suffix>
    </output>
  </time_loop>
  <process_variables>
    <process_variable>
      <name>p</name>
      <components>1</components>
      <order>2</order>
      <initial_condition>p_0</initial_condition>
      <boundary_conditions>
        <boundary_condition>
          <geometrical_set>2PhaseWellbore_small</geometrical_set>
          <geometry>WELLBORE_BOTTOM</geometry>
          <type>Dirichlet</type>
          <parameter>p_Dirichlet_bottom</parameter>
        </boundary_condition>
        <boundary_condition>
          <geometrical_set>2PhaseWellbore_small</geometrical_set>
          <geometry>WELLBORE_TOP</geometry>
          <type>WellboreCompensateNeumann</type>
          <coefficient_pressure>1</coefficient_pressure>
          <coefficient_velocity>0</coefficient_velocity>
          <coefficient_enthalpy>0</coefficient_enthalpy>
        </boundary_condition>
      </boundary_conditions>
    </process_variable>
    <process_variable>
      <name>v</name>
      <components>1</components>
      <order>2</order>
      <initial_condition>v_0</initial_condition>
      <boundary_conditions>
        <boundary_condition>
          <geometrical_set>2PhaseWellbore_small</geometrical_set>
          <geometry>WELLBORE_TOP</geometry>
          <type>Dirichlet</type>
          <parameter>v_Dirichlet_top</parameter>
        </boundary_condition>
        <boundary_condition>
          <geometrical_set>2PhaseWellbore_small</geometrical_set>
          <geometry>WELLBORE_BOTTOM</geometry>
          <type>WellboreCompensateNeumann</type>
          <coefficient_pressure>0</coefficient_pressure>
          <coefficient_velocity>-1</coefficient_velocity>
          <coefficient_enthalpy>0</coefficient_enthalpy>
        </boundary_condition>
      </boundary_conditions>
    </process_variable>
    <process_variable>
      <name>h</name>
      <components>1</components>
      <order>2</order>
      <initial_condition>h_0</initial_condition>
      <boundary_conditions>
        <boundary_condition>
          <geometrical_set>2PhaseWellbore_small</geometrical_set>
          <geometry>WELLBORE_BOTTOM</geometry>
          <type>Dirichlet</type>
          <parameter>h_Dirichlet_bottom</parameter>
        </boundary_condition>
        <boundary_condition>
          <geometrical_set>2PhaseWellbore_small</geometrical_set>
          <geometry>WELLBORE_TOP</geometry>
          <type>WellboreCompensateNeumann</type>
          <coefficient_pressure>0</coefficient_pressure>
          <coefficient_velocity>0</coefficient_velocity>
          <coefficient_enthalpy>1</coefficient_enthalpy>
        </boundary_condition>
      </boundary_conditions>
    </process_variable>
  </process_variables>
  <nonlinear_solvers>
    <nonlinear_solver>
      <name>basic_newton</name>
      <type>Newton</type>
      <max_iter>30</max_iter>
      <damping>0.5</damping>
      <linear_solver>general_linear_solver</linear_solver>
    </nonlinear_solver>
  </nonlinear_solvers>
  <linear_solvers>
    <linear_solver>
      <name>general_linear_solver</name>
      <eigen>
        <solver_type>BiCGSTAB</solver_type>
        <precon_type>ILUT</precon_type>
        <max_iteration_step>10000</max_iteration_step>
        <error_tolerance>1e-16</error_tolerance>
      </eigen>
      <petsc>
        <parameters>-ksp_type bcgs -pc_type lu -ksp_rtol 1e-16 -ksp_max_it 10000</parameters>
      </petsc>
    </linear_solver>
  </linear_solvers>
  <test_definition>
    <vtkdiff>
      <regex>Wellbore_simulator_2Phase_t_.*.vtu</regex>
      <field>p</field>
      <absolute_tolerance>5e-5</absolute_tolerance>
      <relative_tolerance>1e-9</relative_tolerance>
    </vtkdiff>
    <vtkdiff>
      <regex>Wellbore_simulator_2Phase_t_.*.vtu</regex>
      <field>v</field>
      <absolute_tolerance>1e-9</absolute_tolerance>
      <relative_tolerance>1e-8</relative_tolerance>
    </vtkdiff>
    <vtkdiff>
      <regex>Wellbore_simulator_2Phase_t_.*.vtu</regex>
      <field>h</field>
      <absolute_tolerance>8e-4</absolute_tolerance>
      <relative_tolerance>1e-8</relative_tolerance>
    </vtkdiff>
    <vtkdiff>
      <regex>Wellbore_simulator_2Phase_t_.*.vtu</regex>
      <field>temperature</field>
      <absolute_tolerance>5e-5</absolute_tolerance>
      <relative_tolerance>6e-8</relative_tolerance>
    </vtkdiff>
  </test_definition>
</OpenGeoSysProject>