From 2af8306146be981f1b43e41c532a60e43f37a102 Mon Sep 17 00:00:00 2001 From: Wenqing Wang <wenqing.wang@ufz.de> Date: Tue, 17 Jul 2018 17:42:45 +0200 Subject: [PATCH] [Test] Added a test for the BGRa creep model --- ProcessLib/ThermoMechanics/Tests.cmake | 25 ++ .../SimpleAxisymmetricCreep.prj | 224 ++++++++++++++++++ .../SimpleAxisymmetricCreep.vtu | 3 + ...eAxisymmetricCreepWithAnalyticSolution.prj | 217 +++++++++++++++++ ...eAxisymmetricCreepWithAnalyticSolution.vtu | 3 + .../SimpleAxisymmetricCreep/boundary.gml | 3 + ...mmetricCreep_pcs_0_ts_370_t_360.000000.vtu | 3 + 7 files changed, 478 insertions(+) create mode 100644 Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/SimpleAxisymmetricCreep.prj create mode 100644 Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/SimpleAxisymmetricCreep.vtu create mode 100644 Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/SimpleAxisymmetricCreepWithAnalyticSolution.prj create mode 100644 Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/SimpleAxisymmetricCreepWithAnalyticSolution.vtu create mode 100644 Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/boundary.gml create mode 100644 Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/expected_SimpleAxisymmetricCreep_pcs_0_ts_370_t_360.000000.vtu diff --git a/ProcessLib/ThermoMechanics/Tests.cmake b/ProcessLib/ThermoMechanics/Tests.cmake index fb2f56f83c3..80c6d093408 100644 --- a/ProcessLib/ThermoMechanics/Tests.cmake +++ b/ProcessLib/ThermoMechanics/Tests.cmake @@ -77,3 +77,28 @@ AddTest( expected_tm_a_quad_pcs_0_ts_20_t_20000.000000.vtu tm_a_quad_pcs_0_ts_20_t_20000.000000.vtu sigma_yy sigma_yy 5e-10 1e-15 expected_tm_a_quad_pcs_0_ts_20_t_20000.000000.vtu tm_a_quad_pcs_0_ts_20_t_20000.000000.vtu sigma_zz sigma_zz 5e-10 1e-15 ) + +AddTest( + NAME ThermoMechanics_CreepBGRa_SimpleAxisymmetricCreep + PATH ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep + EXECUTABLE ogs + EXECUTABLE_ARGS SimpleAxisymmetricCreep.prj + WRAPPER time + TESTER vtkdiff + REQUIREMENTS NOT (OGS_USE_LIS OR OGS_USE_MPI) + DIFF_DATA + expected_SimpleAxisymmetricCreep_pcs_0_ts_370_t_360.000000.vtu SimpleAxisymmetricCreep_pcs_0_ts_370_t_360.000000.vtu displacement displacement 1e-16 1e-10 + expected_SimpleAxisymmetricCreep_pcs_0_ts_370_t_360.000000.vtu SimpleAxisymmetricCreep_pcs_0_ts_370_t_360.000000.vtu sigma_yy sigma_yy 1e-16 1e-10 +) + +AddTest( + NAME ThermoMechanics_CreepBGRa_SimpleAxisymmetricCreepWithAnalyticSolution + PATH ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep + EXECUTABLE ogs + EXECUTABLE_ARGS SimpleAxisymmetricCreepWithAnalyticSolution.prj + WRAPPER time + TESTER vtkdiff + REQUIREMENTS NOT (OGS_USE_LIS OR OGS_USE_MPI) + DIFF_DATA + SimpleAxisymmetricCreepWithAnalyticSolution.vtu SimpleAxisymmetricCreepWithAnalyticalSolution_pcs_0_ts_1000_t_100.000000.vtu analytic_strain_yy epsilon_yy 1e-10 1e-4 +) diff --git a/Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/SimpleAxisymmetricCreep.prj b/Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/SimpleAxisymmetricCreep.prj new file mode 100644 index 00000000000..2988bc2de3d --- /dev/null +++ b/Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/SimpleAxisymmetricCreep.prj @@ -0,0 +1,224 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<OpenGeoSysProject> + <mesh axially_symmetric="true">SimpleAxisymmetricCreep.vtu</mesh> + <geometry>boundary.gml</geometry> + <processes> + <process> + <name>ThermoMechanics</name> + <type>THERMO_MECHANICS</type> + <integration_order>2</integration_order> + <constitutive_relation> + <type>CreepBGRa</type> + <youngs_modulus>E</youngs_modulus> + <poissons_ratio>nu</poissons_ratio> + <a>0.18</a> + <n>5.0</n> + <sigma0>1</sigma0> + <q>54000</q> + <nonlinear_solver> + <maximum_iterations>1000</maximum_iterations> + <error_tolerance>1e-8</error_tolerance> + </nonlinear_solver> + </constitutive_relation> + <reference_solid_density>rho_sr</reference_solid_density> + <linear_thermal_expansion_coefficient>alpha</linear_thermal_expansion_coefficient> + <specific_heat_capacity>cs</specific_heat_capacity> + <thermal_conductivity>lambda</thermal_conductivity> + <reference_temperature>330.15</reference_temperature> + <process_variables> + <displacement>displacement</displacement> + <temperature>temperature</temperature> + </process_variables> + <secondary_variables> + <secondary_variable type="static" internal_name="sigma_xx" output_name="sigma_xx"/> + <secondary_variable type="static" internal_name="sigma_yy" output_name="sigma_yy"/> + <secondary_variable type="static" internal_name="sigma_zz" output_name="sigma_zz"/> + <secondary_variable type="static" internal_name="sigma_xy" output_name="sigma_xy"/> + <secondary_variable type="static" internal_name="epsilon_xx" output_name="epsilon_xx"/> + <secondary_variable type="static" internal_name="epsilon_yy" output_name="epsilon_yy"/> + <secondary_variable type="static" internal_name="epsilon_zz" output_name="epsilon_zz"/> + <secondary_variable type="static" internal_name="epsilon_xy" output_name="epsilon_xy"/> + </secondary_variables> + <specific_body_force>0 0</specific_body_force> + </process> + </processes> + <time_loop> + <processes> + <process ref="ThermoMechanics"> + <nonlinear_solver>basic_newton</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <abstol>1e-10</abstol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <output> + <variables> + <variable>displacement</variable> + <variable>temperature</variable> + <variable>sigma_xx</variable> + <variable>sigma_yy</variable> + <variable>sigma_zz</variable> + <variable>sigma_xy</variable> + <variable>epsilon_xx</variable> + <variable>epsilon_yy</variable> + <variable>epsilon_zz</variable> + <variable>epsilon_xy</variable> + </variables> + </output> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial>0</t_initial> + <t_end>360</t_end> + <timesteps> + <pair> + <repeat>1</repeat> + <delta_t>1.e-4</delta_t> + </pair> + <pair> + <repeat>10</repeat> + <delta_t>0.1</delta_t> + </pair> + <pair> + <repeat>359</repeat> + <delta_t>1.</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + </processes> + <output> + <type>VTK</type> + <prefix>SimpleAxisymmetricCreep</prefix> + <timesteps> + <pair> + <repeat>1</repeat> + <each_steps>1</each_steps> + </pair> + <pair> + <repeat>1</repeat> + <each_steps>360</each_steps> + </pair> + </timesteps> + </output> + </time_loop> + + <parameters> + <parameter> + <name>E</name> + <type>Constant</type> + <value>25000</value> + </parameter> + <parameter> + <name>nu</name> + <type>Constant</type> + <value>0.27</value> + </parameter> + <parameter> + <name>rho_sr</name> + <type>Constant</type> + <value>0.</value> + </parameter> + <parameter> + <name>alpha</name> + <type>Constant</type> + <value>4e-5</value> + </parameter> + <parameter> + <name>cs</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>lambda</name> + <type>Constant</type> + <value>100</value> + </parameter> + <parameter> + <name>temperature_ic</name> + <type>Constant</type> + <value>330.15</value> + </parameter> + <parameter> + <name>temperature_bc</name> + <type>Constant</type> + <value>323.15</value> + </parameter> + <parameter> + <name>displacement0</name> + <type>Constant</type> + <values>0 0</values> + </parameter> + <parameter> + <name>p_bc</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>cpreepBGRA</geometrical_set> + <geometry>top</geometry> + <type>Dirichlet</type> + <component>1</component> + <parameter>p_bc</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>cpreepBGRA</geometrical_set> + <geometry>bottom</geometry> + <type>Dirichlet</type> + <component>1</component> + <parameter>p_bc</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + <process_variable> + <name>temperature</name> + <components>1</components> + <order>1</order> + <initial_condition>temperature_ic</initial_condition> + <boundary_conditions> + <boundary_condition> + <geometrical_set>cpreepBGRA</geometrical_set> + <geometry>top</geometry> + <type>Dirichlet</type> + <parameter>temperature_bc</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>cpreepBGRA</geometrical_set> + <geometry>bottom</geometry> + <type>Dirichlet</type> + <parameter>temperature_bc</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + </process_variables> + <nonlinear_solvers> + <nonlinear_solver> + <name>basic_newton</name> + <type>Newton</type> + <max_iter>50</max_iter> + <linear_solver>general_linear_solver</linear_solver> + </nonlinear_solver> + </nonlinear_solvers> + <linear_solvers> + <linear_solver> + <name>general_linear_solver</name> + <lis>-i bicgstab -p jacobi -tol 1e-11 -maxiter 10000</lis> + <eigen> + <solver_type>BiCGSTAB</solver_type> + <precon_type>DIAGONAL</precon_type> + <max_iteration_step>10000</max_iteration_step> + <error_tolerance>1e-11</error_tolerance> + </eigen> + </linear_solver> + </linear_solvers> +</OpenGeoSysProject> diff --git a/Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/SimpleAxisymmetricCreep.vtu b/Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/SimpleAxisymmetricCreep.vtu new file mode 100644 index 00000000000..11f02e92ed2 --- /dev/null +++ b/Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/SimpleAxisymmetricCreep.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:503d74ed4afa0e6443e9221ee916b1ef89df1a0b8af11f3977e2f8006e7d03ff +size 22168 diff --git a/Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/SimpleAxisymmetricCreepWithAnalyticSolution.prj b/Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/SimpleAxisymmetricCreepWithAnalyticSolution.prj new file mode 100644 index 00000000000..951e14b15d0 --- /dev/null +++ b/Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/SimpleAxisymmetricCreepWithAnalyticSolution.prj @@ -0,0 +1,217 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<OpenGeoSysProject> + <mesh axially_symmetric="true">SimpleAxisymmetricCreepWithAnalyticSolution.vtu</mesh> + <geometry>boundary.gml</geometry> + <processes> + <process> + <name>ThermoMechanics</name> + <type>THERMO_MECHANICS</type> + <integration_order>2</integration_order> + <constitutive_relation> + <type>CreepBGRa</type> + <youngs_modulus>E</youngs_modulus> + <poissons_ratio>nu</poissons_ratio> + <a>0.18</a> + <n>5.0</n> + <sigma0>1</sigma0> + <q>54000</q> + <nonlinear_solver> + <maximum_iterations>1000</maximum_iterations> + <error_tolerance>1e-8</error_tolerance> + </nonlinear_solver> + </constitutive_relation> + <reference_solid_density>rho_sr</reference_solid_density> + <linear_thermal_expansion_coefficient>alpha</linear_thermal_expansion_coefficient> + <specific_heat_capacity>cs</specific_heat_capacity> + <thermal_conductivity>lambda</thermal_conductivity> + <reference_temperature>373.15</reference_temperature> + <process_variables> + <displacement>displacement</displacement> + <temperature>temperature</temperature> + </process_variables> + <secondary_variables> + <secondary_variable type="static" internal_name="sigma_xx" output_name="sigma_xx"/> + <secondary_variable type="static" internal_name="sigma_yy" output_name="sigma_yy"/> + <secondary_variable type="static" internal_name="sigma_zz" output_name="sigma_zz"/> + <secondary_variable type="static" internal_name="sigma_xy" output_name="sigma_xy"/> + <secondary_variable type="static" internal_name="epsilon_xx" output_name="epsilon_xx"/> + <secondary_variable type="static" internal_name="epsilon_yy" output_name="epsilon_yy"/> + <secondary_variable type="static" internal_name="epsilon_zz" output_name="epsilon_zz"/> + <secondary_variable type="static" internal_name="epsilon_xy" output_name="epsilon_xy"/> + </secondary_variables> + <specific_body_force>0 0</specific_body_force> + </process> + </processes> + <time_loop> + <processes> + <process ref="ThermoMechanics"> + <nonlinear_solver>basic_newton</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <abstol>1e-9</abstol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <output> + <variables> + <variable>displacement</variable> + <variable>temperature</variable> + <variable>sigma_xx</variable> + <variable>sigma_yy</variable> + <variable>sigma_zz</variable> + <variable>sigma_xy</variable> + <variable>epsilon_xx</variable> + <variable>epsilon_yy</variable> + <variable>epsilon_zz</variable> + <variable>epsilon_xy</variable> + </variables> + </output> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial>0</t_initial> + <t_end>100</t_end> + <timesteps> + <pair> + <repeat>100</repeat> + <delta_t>0.1</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + </processes> + <output> + <type>VTK</type> + <prefix>SimpleAxisymmetricCreepWithAnalyticalSolution</prefix> + <timesteps> + <pair> + <repeat>10</repeat> + <each_steps>100</each_steps> + </pair> + </timesteps> + </output> + </time_loop> + + <parameters> + <parameter> + <name>E</name> + <type>Constant</type> + <value>25000</value> + </parameter> + <parameter> + <name>nu</name> + <type>Constant</type> + <value>0.27</value> + </parameter> + <parameter> + <name>rho_sr</name> + <type>Constant</type> + <value>0.</value> + </parameter> + <parameter> + <name>alpha</name> + <type>Constant</type> + <value>4e-5</value> + </parameter> + <parameter> + <name>cs</name> + <type>Constant</type> + <value>100</value> + </parameter> + <parameter> + <name>lambda</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>temperature_ic</name> + <type>Constant</type> + <value>373.15</value> + </parameter> + <parameter> + <name>temperature_bc</name> + <type>Constant</type> + <value>373.15</value> + </parameter> + <parameter> + <name>displacement0</name> + <type>Constant</type> + <values>0 0</values> + </parameter> + <parameter> + <name>dirichlet0</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>m_pressure</name> + <type>Constant</type> + <value>5.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>cpreepBGRA</geometrical_set> + <geometry>bottom</geometry> + <type>Neumann</type> + <component>1</component> + <parameter>m_pressure</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>cpreepBGRA</geometrical_set> + <geometry>top</geometry> + <type>Dirichlet</type> + <component>1</component> + <parameter>dirichlet0</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + <process_variable> + <name>temperature</name> + <components>1</components> + <order>1</order> + <initial_condition>temperature_ic</initial_condition> + <boundary_conditions> + <boundary_condition> + <geometrical_set>cpreepBGRA</geometrical_set> + <geometry>top</geometry> + <type>Dirichlet</type> + <parameter>temperature_bc</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>cpreepBGRA</geometrical_set> + <geometry>bottom</geometry> + <type>Dirichlet</type> + <parameter>temperature_bc</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + </process_variables> + <nonlinear_solvers> + <nonlinear_solver> + <name>basic_newton</name> + <type>Newton</type> + <max_iter>50</max_iter> + <linear_solver>general_linear_solver</linear_solver> + </nonlinear_solver> + </nonlinear_solvers> + <linear_solvers> + <linear_solver> + <name>general_linear_solver</name> + <lis>-i bicgstab -p jacobi -tol 1e-11 -maxiter 10000</lis> + <eigen> + <solver_type>BiCGSTAB</solver_type> + <precon_type>DIAGONAL</precon_type> + <max_iteration_step>10000</max_iteration_step> + <error_tolerance>1e-11</error_tolerance> + </eigen> + </linear_solver> + </linear_solvers> +</OpenGeoSysProject> diff --git a/Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/SimpleAxisymmetricCreepWithAnalyticSolution.vtu b/Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/SimpleAxisymmetricCreepWithAnalyticSolution.vtu new file mode 100644 index 00000000000..4219698e0f4 --- /dev/null +++ b/Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/SimpleAxisymmetricCreepWithAnalyticSolution.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc97d747694a6674b536b756548d1438b404ab4ee6d12cce4639fd3abaa1e036 +size 17588 diff --git a/Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/boundary.gml b/Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/boundary.gml new file mode 100644 index 00000000000..96a26287583 --- /dev/null +++ b/Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/boundary.gml @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b8c211de861d265e80233276313a01113834289de1836b8207b40b38279ea31 +size 826 diff --git a/Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/expected_SimpleAxisymmetricCreep_pcs_0_ts_370_t_360.000000.vtu b/Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/expected_SimpleAxisymmetricCreep_pcs_0_ts_370_t_360.000000.vtu new file mode 100644 index 00000000000..84345b33ea1 --- /dev/null +++ b/Tests/Data/ThermoMechanics/CreepBGRa/SimpleAxisymmetricCreep/expected_SimpleAxisymmetricCreep_pcs_0_ts_370_t_360.000000.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ba0c28933aba289c38d4558b0f03d1213bf4eab27e24e571b16442f70459fa2 +size 22088 -- GitLab