diff --git a/ProcessLib/PhaseField/Tests.cmake b/ProcessLib/PhaseField/Tests.cmake index 81fa5c3a6a3330618f385e06a811d8334980690c..90454b5856a5b2867b6fc38dfa88fe8c251fabb6 100644 --- a/ProcessLib/PhaseField/Tests.cmake +++ b/ProcessLib/PhaseField/Tests.cmake @@ -47,17 +47,17 @@ AddTest( NAME PhaseField_3D_beam_tens_AT1_vd_2core PATH PhaseField/beam EXECUTABLE ogs - EXECUTABLE_ARGS AT1_vd_tensile.prj + EXECUTABLE_ARGS AT1_vd_tensile_2core.prj WRAPPER mpirun WRAPPER_ARGS -np 2 TESTER vtkdiff REQUIREMENTS OGS_USE_MPI RUNTIME 18 DIFF_DATA - expected_AT1_vd_tension_2core_ts_10_t_1_000000_0.vtu AT1_vd_tension_ts_10_t_1_000000_0.vtu displacement displacement 1e-5 0 - expected_AT1_vd_tension_2core_ts_10_t_1_000000_1.vtu AT1_vd_tension_ts_10_t_1_000000_1.vtu displacement displacement 1e-5 0 - expected_AT1_vd_tension_2core_ts_10_t_1_000000_0.vtu AT1_vd_tension_ts_10_t_1_000000_0.vtu phasefield phasefield 1e-6 0 - expected_AT1_vd_tension_2core_ts_10_t_1_000000_1.vtu AT1_vd_tension_ts_10_t_1_000000_1.vtu phasefield phasefield 1e-6 0 + expected_AT1_vd_tension_2core_ts_10_t_1_000000_0.vtu AT1_vd_tension_2core_ts_10_t_1_000000_0.vtu displacement displacement 1e-5 0 + expected_AT1_vd_tension_2core_ts_10_t_1_000000_1.vtu AT1_vd_tension_2core_ts_10_t_1_000000_1.vtu displacement displacement 1e-5 0 + expected_AT1_vd_tension_2core_ts_10_t_1_000000_0.vtu AT1_vd_tension_2core_ts_10_t_1_000000_0.vtu phasefield phasefield 1e-6 0 + expected_AT1_vd_tension_2core_ts_10_t_1_000000_1.vtu AT1_vd_tension_2core_ts_10_t_1_000000_1.vtu phasefield phasefield 1e-6 0 ) AddTest( diff --git a/Tests/Data/PhaseField/beam/AT1_vd_tensile_2core.prj b/Tests/Data/PhaseField/beam/AT1_vd_tensile_2core.prj new file mode 100644 index 0000000000000000000000000000000000000000..672f826b23e6b40194f095da3be7c0ae59edd884 --- /dev/null +++ b/Tests/Data/PhaseField/beam/AT1_vd_tensile_2core.prj @@ -0,0 +1,290 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<OpenGeoSysProject> + <!-- element size == 0.01 --> + <meshes> + <mesh>bar.vtu</mesh> + <mesh>bar_left.vtu</mesh> + <mesh>bar_right.vtu</mesh> + </meshes> + <processes> + <process> + <name>PhaseField</name> + <type>PHASE_FIELD</type> + <coupling_scheme>staggered</coupling_scheme> + <integration_order>2</integration_order> + <phasefield_model>AT1</phasefield_model> + <energy_split_model>VolumetricDeviatoric</energy_split_model> + <irreversible_threshold>0.05</irreversible_threshold> + <constitutive_relation> + <type>LinearElasticIsotropic</type> + <youngs_modulus>E</youngs_modulus> + <poissons_ratio>nu</poissons_ratio> + </constitutive_relation> + <phasefield_parameters> + <residual_stiffness>k</residual_stiffness> + <crack_resistance>gc</crack_resistance> + <crack_length_scale>ls</crack_length_scale> + </phasefield_parameters> + <solid_density>rho_sr</solid_density> + <process_variables> + <phasefield>phasefield</phasefield> + <displacement>displacement</displacement> + </process_variables> + <secondary_variables> + <secondary_variable type="static" internal_name="sigma" output_name="sigma"/> + <secondary_variable type="static" internal_name="epsilon" output_name="epsilon"/> + </secondary_variables> + <specific_body_force>0 0 0</specific_body_force> + </process> + </processes> + <time_loop> + <global_process_coupling> + <max_iter> 1000 </max_iter> + <convergence_criteria> + <!-- convergence criterion for the first process --> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>INFINITY_N</norm_type> + <abstol>1.e-1</abstol> + <reltol>1.e-1</reltol> + </convergence_criterion> + <!-- convergence criterion for the second process --> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>INFINITY_N</norm_type> + <abstol>1.e-4</abstol> + <reltol>1.e-10</reltol> + </convergence_criterion> + </convergence_criteria> + </global_process_coupling> + <processes> + <process ref="PhaseField"> + <nonlinear_solver>basic_newton_u</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <reltol>1.e-14</reltol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial>0</t_initial> + <t_end>1.0</t_end> + <timesteps> + <pair> + <repeat>1</repeat> + <delta_t>1.e-1</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + <process ref="PhaseField"> + <nonlinear_solver>petsc_snes</nonlinear_solver> + <convergence_criterion> + <type>DeltaX</type> + <norm_type>NORM2</norm_type> + <reltol>1.e-14</reltol> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial>0</t_initial> + <t_end>1.0</t_end> + <timesteps> + <pair> + <repeat>1</repeat> + <delta_t>1.e-1</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + </processes> + <output> + <variables> + <variable>displacement</variable> + <variable>phasefield</variable> + <variable>sigma</variable> + <variable>epsilon</variable> + </variables> + <type>VTK</type> + <prefix>AT1_vd_tension_2core</prefix> + <timesteps> + <pair> + <repeat>10</repeat> + <each_steps>1</each_steps> + </pair> + <pair> + <repeat>10</repeat> + <each_steps>1</each_steps> + </pair> + </timesteps> + </output> + </time_loop> + <parameters> + <!-- Mechanics --> + <parameter> + <name>E</name> + <type>Constant</type> + <value>1.0</value> + </parameter> + <parameter> + <name>nu</name> + <type>Constant</type> + <value>0.15</value> + </parameter> + <parameter> + <name>k</name> + <type>Constant</type> + <value>1e-8</value> + </parameter> + <parameter> + <name>gc</name> + <type>Constant</type> + <value>1.0</value> + </parameter> + <parameter> + <name>ls</name> + <type>Constant</type> + <value>0.02</value> + </parameter> + <parameter> + <name>rho_sr</name> + <type>Constant</type> + <value>0.0</value> + </parameter> + <parameter> + <name>displacement0</name> + <type>Constant</type> + <values>0 0 0</values> + </parameter> + <parameter> + <name>phasefield_ic</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>phasefield_bc</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>dirichlet0</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>Dirichlet_spatial</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>dirichlet_right_time</name> + <type>CurveScaled</type> + <curve>dirichlet_time</curve> + <parameter>dirichlet_right</parameter> + </parameter> + <parameter> + <name>dirichlet_right</name> + <type>Constant</type> + <value>5.0</value> + </parameter> + </parameters> + <curves> + <curve> + <name>dirichlet_time</name> + <coords>0 1.0</coords> + <values>0 0.9</values> + </curve> + </curves> + <process_variables> + <process_variable> + <name>phasefield</name> + <components>1</components> + <order>1</order> + <initial_condition>phasefield_ic</initial_condition> + <boundary_conditions> + <boundary_condition> + <geometrical_set>bar</geometrical_set> + <geometry>left</geometry> + <type>Dirichlet</type> + <component>0</component> + <parameter>phasefield_bc</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>bar</geometrical_set> + <geometry>right</geometry> + <type>Dirichlet</type> + <component>0</component> + <parameter>phasefield_bc</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>bar</geometrical_set> + <geometry>right</geometry> + <type>PhaseFieldIrreversibleDamageOracleBoundaryCondition</type> + <component>0</component> + </boundary_condition> + </boundary_conditions> + </process_variable> + <process_variable> + <name>displacement</name> + <components>3</components> + <order>1</order> + <initial_condition>displacement0</initial_condition> + <boundary_conditions> + <boundary_condition> + <geometrical_set>bar</geometrical_set> + <geometry>left</geometry> + <type>Dirichlet</type> + <component>0</component> + <parameter>dirichlet0</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>bar</geometrical_set> + <geometry>right</geometry> + <type>Dirichlet</type> + <component>0</component> + <parameter>dirichlet_right_time</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + </process_variables> + <nonlinear_solvers> + <nonlinear_solver> + <name>petsc_snes</name> + <type>PETScSNES</type> + <!-- <type>Newton</type> --> + <max_iter>50</max_iter> + <linear_solver>linear_solver_d</linear_solver> + </nonlinear_solver> + <nonlinear_solver> + <name>basic_newton_u</name> + <type>Newton</type> + <max_iter>200</max_iter> + <linear_solver>linear_solver_u</linear_solver> + </nonlinear_solver> + </nonlinear_solvers> + <linear_solvers> + <linear_solver> + <name>linear_solver_d</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 cg -pc_type bjacobi -ksp_atol 1e-10 -ksp_rtol 1e-10 -snes_type vinewtonrsls -snes_linesearch_type l2 -snes_atol 1.e-8 -snes_rtol 1.e-8 -snes_max_it 1000 -snes_monitor </parameters> + </petsc> + </linear_solver> + <linear_solver> + <name>linear_solver_u</name> + <petsc> + <parameters>-ksp_type cg -pc_type bjacobi -ksp_atol 1e-14 -ksp_rtol 1e-14 </parameters> + </petsc> + </linear_solver> + </linear_solvers> +</OpenGeoSysProject>