diff --git a/ProcessLib/SmallDeformation/Tests.cmake b/ProcessLib/SmallDeformation/Tests.cmake index fbaf77f9c9adad00495a86df9fbf259625fb94c9..08aad5375ccd4f4fdb29a869f1ad3decee29a9ba 100644 --- a/ProcessLib/SmallDeformation/Tests.cmake +++ b/ProcessLib/SmallDeformation/Tests.cmake @@ -60,6 +60,7 @@ if (OGS_USE_MFRONT) OgsTest(PROJECTFILE Mechanics/Linear/MFront/square_1e0_orthotropic_xyz.prj) OgsTest(PROJECTFILE Mechanics/Linear/MFront/square_1e0_orthotropic_45xy_z.prj) OgsTest(PROJECTFILE Mechanics/Linear/MFront/square_1e0_orthotropic_y-xz.prj) + OgsTest(PROJECTFILE Mechanics/Burgers/cube_1e0_mfront.prj) # Linear elastic, no internal state variables, no external state variables. AddTest( NAME Mechanics_SDL_disc_with_hole_mfront diff --git a/Tests/Data/Mechanics/Burgers/cube_1e0_mfront.prj b/Tests/Data/Mechanics/Burgers/cube_1e0_mfront.prj new file mode 100644 index 0000000000000000000000000000000000000000..12b56921d25fc8055026d3903e469ff9818c8d00 --- /dev/null +++ b/Tests/Data/Mechanics/Burgers/cube_1e0_mfront.prj @@ -0,0 +1,251 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<OpenGeoSysProject> + <mesh>cube_1x1x1_hex_1e0.vtu</mesh> + <geometry>cube_1x1x1.gml</geometry> + <processes> + <process> + <name>SD</name> + <type>SMALL_DEFORMATION</type> + <integration_order>2</integration_order> + <constitutive_relation> + <type>MFront</type> + <behaviour>Lubby2</behaviour> + <material_properties> + <material_property name="YoungModulus" parameter="YoungModulus"/> + <material_property name="PoissonRatio" parameter="PoissonRatio"/> + <material_property name="KelvinShearModulus" parameter="GK0"/> + <material_property name="KelvinViscosity" parameter="etaK0"/> + <material_property name="MaxwellViscosity" parameter="etaM0"/> + <material_property name="KelvinElasticParameter" parameter="mK"/> + <material_property name="MaxwellViscoParameter" parameter="mvM"/> + <material_property name="KelvinViscoParameter" parameter="mvK"/> + </material_properties> + </constitutive_relation> + <solid_density>rho_sr</solid_density> + <specific_body_force>0 0 0</specific_body_force> + <process_variables> + <process_variable>displacement</process_variable> + </process_variables> + <secondary_variables> + <secondary_variable internal_name="sigma" output_name="sigma"/> + </secondary_variables> + </process> + </processes> + <time_loop> + <processes> + <process ref="SD"> + <nonlinear_solver>basic_newton</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <abstol>1e-15</abstol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial>0</t_initial> + <t_end>1</t_end> + <timesteps> + <pair> + <repeat>1</repeat> + <delta_t>0.0001</delta_t> + </pair> + <pair> + <repeat>100</repeat> + <delta_t>0.01</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + </processes> + <output> + <type>VTK</type> + <prefix>cube_1e0</prefix> + <timesteps> + <pair> + <repeat>1</repeat> + <each_steps>1</each_steps> + </pair> + <pair> + <repeat>1</repeat> + <each_steps>10000000</each_steps> + </pair> + </timesteps> + <variables> + <variable>displacement</variable> + <variable>sigma</variable> + </variables> + </output> + </time_loop> + <parameters> + <parameter> + <name>GK0</name> + <type>Constant</type> + <value>0.8</value> + </parameter> + <parameter> + <name>etaK0</name> + <type>Constant</type> + <value>0.5</value> + </parameter> + <parameter> + <name>YoungModulus</name> + <type>Constant</type> + <value>1.8</value> + </parameter> + <parameter> + <name>PoissonRatio</name> + <type>Constant</type> + <value>0.125</value> + </parameter> + <parameter> + <name>etaM0</name> + <type>Constant</type> + <value>0.5</value> + </parameter> + <parameter> + <name>mK</name> + <type>Constant</type> + <value>-0.2</value> + </parameter> + <parameter> + <name>mvK</name> + <type>Constant</type> + <value>-0.2</value> + </parameter> + <parameter> + <name>mvM</name> + <type>Constant</type> + <value>-0.3</value> + </parameter> + <parameter> + <name>rho_sr</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>displacement0</name> + <type>Constant</type> + <values>0 0 0</values> + </parameter> + <parameter> + <name>neumann_force</name> + <type>Constant</type> + <values>0.01</values> + </parameter> + <parameter> + <name>dirichlet0</name> + <type>Constant</type> + <value>0</value> + </parameter> + </parameters> + <process_variables> + <process_variable> + <name>displacement</name> + <components>3</components> + <order>1</order> + <initial_condition>displacement0</initial_condition> + <boundary_conditions> + <!-- fixed boundaries --> + <boundary_condition> + <geometrical_set>cube_1x1x1_geometry</geometrical_set> + <geometry>left</geometry> + <type>Dirichlet</type> + <component>1</component> + <parameter>dirichlet0</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>cube_1x1x1_geometry</geometrical_set> + <geometry>back</geometry> + <type>Dirichlet</type> + <component>1</component> + <parameter>dirichlet0</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>cube_1x1x1_geometry</geometrical_set> + <geometry>front</geometry> + <type>Dirichlet</type> + <component>0</component> + <parameter>dirichlet0</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>cube_1x1x1_geometry</geometrical_set> + <geometry>front</geometry> + <type>Dirichlet</type> + <component>1</component> + <parameter>dirichlet0</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>cube_1x1x1_geometry</geometrical_set> + <geometry>right</geometry> + <type>Dirichlet</type> + <component>1</component> + <parameter>dirichlet0</parameter> + </boundary_condition> + <!-- force --> + <boundary_condition> + <geometrical_set>cube_1x1x1_geometry</geometrical_set> + <geometry>back</geometry> + <type>Neumann</type> + <component>0</component> + <parameter>neumann_force</parameter> + </boundary_condition> + <!-- fix front for the 3d case --> + <boundary_condition> + <geometrical_set>cube_1x1x1_geometry</geometrical_set> + <geometry>top</geometry> + <type>Dirichlet</type> + <component>2</component> + <parameter>dirichlet0</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>cube_1x1x1_geometry</geometrical_set> + <geometry>bottom</geometry> + <type>Dirichlet</type> + <component>2</component> + <parameter>dirichlet0</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + </process_variables> + <nonlinear_solvers> + <nonlinear_solver> + <name>basic_newton</name> + <type>Newton</type> + <max_iter>4</max_iter> + <linear_solver>general_linear_solver</linear_solver> + </nonlinear_solver> + </nonlinear_solvers> + <linear_solvers> + <linear_solver> + <name>general_linear_solver</name> + <lis>-i cg -p jacobi -tol 1e-16 -maxiter 10000</lis> + <eigen> + <solver_type>CG</solver_type> + <precon_type>DIAGONAL</precon_type> + <max_iteration_step>10000</max_iteration_step> + <error_tolerance>1e-16</error_tolerance> + </eigen> + <petsc> + <prefix>sd</prefix> + <parameters>-sd_ksp_type cg -sd_pc_type bjacobi -sd_ksp_rtol 1e-16 -sd_ksp_max_it 10000</parameters> + </petsc> + </linear_solver> + </linear_solvers> + <test_definition> + <vtkdiff> + <file>cube_1e0_pcs_0_ts_1_t_0.000100.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-16</absolute_tolerance> + <relative_tolerance>1e-16</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>cube_1e0_pcs_0_ts_101_t_1.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-16</absolute_tolerance> + <relative_tolerance>1e-16</relative_tolerance> + </vtkdiff> + </test_definition> +</OpenGeoSysProject>