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

RichardsMechanics: mass lumping #2590

Merged
merged 3 commits into from Aug 6, 2019
Merged
Changes from 1 commit
Commits
File filter...
Filter file types
Jump to…
Jump to file or symbol
Failed to load files and symbols.

Always

Just for now

[T] RM; Newton with mass lumping.

  • Loading branch information...
endJunction committed Aug 5, 2019
commit 128af5d4261698c903d4e3cbe4c70dc6ac22b66c
@@ -130,6 +130,26 @@ AddTest(
GLOB Richards_2d_geometry_OBSERVATION_POINT_pcs_0_ts_*.vtu displacement displacement 2e-14 0
GLOB Richards_2d_geometry_OBSERVATION_POINT_pcs_0_ts_*.vtu pressure pressure 1e-7 1e-15
)
AddTest(
NAME RichardsMechanics_RichardsFlow_2d_small_masslumping
PATH RichardsMechanics
EXECUTABLE ogs
EXECUTABLE_ARGS RichardsFlow_2d_small_masslumping.prj
WRAPPER time
TESTER vtkdiff
REQUIREMENTS NOT OGS_USE_MPI
DIFF_DATA
GLOB RichardsFlow_2d_small_masslumping_pcs_0_ts_*.vtu displacement displacement 2e-14 0
GLOB RichardsFlow_2d_small_masslumping_pcs_0_ts_*.vtu sigma sigma 1e-8 0
GLOB RichardsFlow_2d_small_masslumping_pcs_0_ts_*.vtu epsilon epsilon 1e-15 0
GLOB RichardsFlow_2d_small_masslumping_pcs_0_ts_*.vtu pressure pressure 1e-7 1e-15
GLOB RichardsFlow_2d_small_masslumping_pcs_0_ts_*.vtu pressure_interpolated pressure_interpolated 1e-7 1e-15
GLOB RichardsFlow_2d_small_masslumping_pcs_0_ts_*.vtu saturation saturation 1e-11 1e-15
GLOB RichardsFlow_2d_small_masslumping_pcs_0_ts_*.vtu saturation_avg saturation_avg 1e-11 1e-15
GLOB RichardsFlow_2d_small_masslumping_pcs_0_ts_*.vtu velocity velocity 1e-15 1e-15
GLOB RichardsFlow_2d_small_masslumping_pcs_0_ts_*.vtu HydraulicFlow HydraulicFlow 1e-13 0
GLOB RichardsFlow_2d_small_masslumping_pcs_0_ts_*.vtu NodalForces NodalForces 1e-9 0
)
AddTest(
NAME RichardsMechanics_RichardsFlow_2d_quasinewton
PATH RichardsMechanics
@@ -0,0 +1,291 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<OpenGeoSysProject>
<mesh>Richards_2d.vtu</mesh>
<geometry>Richards_2d.gml</geometry>
<processes>
<process>
<name>RM</name>
<type>RICHARDS_MECHANICS</type>
<integration_order>3</integration_order>
<dimension>2</dimension>
<constitutive_relation>
<type>LinearElasticIsotropic</type>
<youngs_modulus>E</youngs_modulus>
<poissons_ratio>nu</poissons_ratio>
</constitutive_relation>
<solid_bulk_modulus>K_SR</solid_bulk_modulus>
<fluid_bulk_modulus>K_LR</fluid_bulk_modulus>
<biot_coefficient>alpha</biot_coefficient>
<solid_density>rho_sr</solid_density>
<process_variables>
<displacement>displacement</displacement>
<pressure>pressure</pressure>
</process_variables>
<material_property>
<fluid>
<density>
<type>Constant</type>
<value> 1 </value>
</density>
<viscosity>
<type>Constant</type>
<value> 1.e-3 </value>
</viscosity>
</fluid>
<porous_medium>
<porous_medium id="0">
<permeability>
<permeability_tensor_entries>k</permeability_tensor_entries>
<type>Constant</type>
</permeability>
<porosity>
<type>Constant</type>
<porosity_parameter>phi</porosity_parameter>
</porosity>
<storage>
<type>Constant</type>
<value> 0.0 </value>
</storage>
<capillary_pressure>
<type>vanGenuchten</type>
<m>0.789029535864979</m>
<pc_max>36333.30</pc_max>
<pd>3633.33</pd>
<smax>0.95</smax>
<sr>0.1689</sr>
</capillary_pressure>
<relative_permeability>
<type>WettingPhaseVanGenuchten</type>
<krel_min>1e-12</krel_min>
<m>0.789029535864979</m>
<smax>0.95</smax>
<sr>0.1689</sr>
</relative_permeability>
</porous_medium>
</porous_medium>
</material_property>
<secondary_variables>
<secondary_variable type="static" internal_name="sigma" output_name="sigma"/>
<secondary_variable type="static" internal_name="epsilon" output_name="epsilon"/>
<secondary_variable type="static" internal_name="velocity" output_name="velocity"/>
<secondary_variable type="static" internal_name="saturation" output_name="saturation"/>
</secondary_variables>
<specific_body_force>0 -9.81</specific_body_force>
<mass_lumping>true</mass_lumping>
<temperature> temp </temperature>
</process>
</processes>
<time_loop>
<processes>
<process ref="RM">
<nonlinear_solver>nonlinear_solver</nonlinear_solver>
<convergence_criterion>
<type>PerComponentDeltaX</type>
<norm_type>NORM2</norm_type>
<abstols>1e-7 1e-11 1e-10</abstols>
</convergence_criterion>
<time_discretization>
<type>BackwardEuler</type>
</time_discretization>
<time_stepping>
<type>FixedTimeStepping</type>
<t_initial>0</t_initial>
<t_end>2000</t_end>
<timesteps>
<pair>
<repeat>1</repeat>
<delta_t>1</delta_t>
</pair>
<pair>
<repeat>1</repeat>
<delta_t>2</delta_t>
</pair>
<pair>
<repeat>1</repeat>
<delta_t>5</delta_t>
</pair>
<pair>
<repeat>1</repeat>
<delta_t>10</delta_t>
</pair>
<pair>
<repeat>50</repeat>
<delta_t>20</delta_t>
</pair>
</timesteps>
</time_stepping>
</process>
</processes>
<output>
<type>VTK</type>
<prefix>RichardsFlow_2d_small_masslumping</prefix>
<timesteps>
<pair>
<repeat>9</repeat>
<each_steps>1</each_steps>
</pair>
<pair>
<repeat>100</repeat>
<each_steps>10</each_steps>
</pair>
</timesteps>
<output_iteration_results>false</output_iteration_results>
<variables>
<variable>displacement</variable>
<variable>pressure</variable>
<variable>sigma</variable>
<variable>epsilon</variable>
<variable>velocity</variable>
<variable>saturation</variable>
</variables>
</output>
</time_loop>
<parameters>
<!-- Mechanics -->
<parameter>
<name>K_SR</name>
<type>Constant</type>
<value>160e300</value>
</parameter>
<parameter>
<name>E</name>
<type>Constant</type>
<value>5e9</value>
</parameter>
<parameter>
<name>nu</name>
<type>Constant</type>
<value>.1</value>
</parameter>
<!-- Model parameters -->
<parameter>
<name>k</name>
<type>Constant</type>
<value>4.46e-13</value>
</parameter>
<parameter>
<name>alpha</name>
<type>Constant</type>
<value>0</value>
</parameter>
<parameter>
<name>phi</name>
<type>Constant</type>
<value>0.38</value>
</parameter>
<parameter>
<name>rho_sr</name>
<type>Constant</type>
<value>1</value>
</parameter>
<parameter>
<name>K_LR</name>
<type>Constant</type>
<value>2.2e300</value>
</parameter>
<parameter>
<name>temp</name>
<type>Constant</type>
<value>293.15</value>
</parameter>
<parameter>
<name>displacement0</name>
<type>Constant</type>
<values>0 0</values>
</parameter>
<parameter>
<name>dirichlet0</name>
<type>Constant</type>
<values>0</values>
</parameter>
<parameter>
<name>p0</name>
<type>Constant</type>
<value>-5000</value>
</parameter>
<parameter>
<name>p_Dirichlet_bottom</name>
<type>Constant</type>
<value>1000</value>
</parameter>
</parameters>
<process_variables>
<process_variable>
<name>displacement</name>
<components>2</components>
<order>2</order>
<initial_condition>displacement0</initial_condition>
<boundary_conditions>
<boundary_condition>
<geometrical_set>Richards_2d_geometry</geometrical_set>
<geometry>LEFT</geometry>
<type>Dirichlet</type>
<component>0</component>
<parameter>dirichlet0</parameter>
</boundary_condition>
<boundary_condition>
<geometrical_set>Richards_2d_geometry</geometrical_set>
<geometry>RIGHT</geometry>
<type>Dirichlet</type>
<component>0</component>
<parameter>dirichlet0</parameter>
</boundary_condition>
<boundary_condition>
<geometrical_set>Richards_2d_geometry</geometrical_set>
<geometry>BOTTOM</geometry>
<type>Dirichlet</type>
<component>1</component>
<parameter>dirichlet0</parameter>
</boundary_condition>
<boundary_condition>
<geometrical_set>Richards_2d_geometry</geometrical_set>
<geometry>TOP</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>p0</initial_condition>
<boundary_conditions>
<boundary_condition>
<geometrical_set>Richards_2d_geometry</geometrical_set>
<geometry>BOTTOM</geometry>
<type>Dirichlet</type>
<parameter>p_Dirichlet_bottom</parameter>
</boundary_condition>
<boundary_condition>
<geometrical_set>Richards_2d_geometry</geometrical_set>
<geometry>TOP</geometry>
<type>Dirichlet</type>
<parameter>p0</parameter>
</boundary_condition>
</boundary_conditions>
</process_variable>
</process_variables>
<nonlinear_solvers>
<nonlinear_solver>
<name>nonlinear_solver</name>
<type>Newton</type>
<max_iter>100</max_iter>
<linear_solver>general_linear_solver</linear_solver>
<!--damping>0.9</damping-->
</nonlinear_solver>
</nonlinear_solvers>
<linear_solvers>
<linear_solver>
<name>general_linear_solver</name>
<eigen>
<solver_type>SparseLU</solver_type>
<scaling>true</scaling>
<!--
<solver_type>PardisoLU</solver_type>
-->
</eigen>
</linear_solver>
</linear_solvers>
</OpenGeoSysProject>
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.