Skip to content

Commit

Permalink
Merge branch 'm_membrane_3d' into 'master'
Browse files Browse the repository at this point in the history
[M] Cooks's Membrane test in 3D

See merge request ogs/ogs!5134
  • Loading branch information
endJunction committed Oct 17, 2024
2 parents bd72e57 + 7753342 commit 4580484
Show file tree
Hide file tree
Showing 5 changed files with 288 additions and 0 deletions.
1 change: 1 addition & 0 deletions ProcessLib/SmallDeformation/Tests.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ if (NOT OGS_USE_MPI)
OgsTest(PROJECTFILE Mechanics/CooksMembrane/CooksMembraneSDRefinedMesh20.xml RUNTIME 4)
OgsTest(PROJECTFILE Mechanics/CooksMembrane/CooksMembraneSDRefinedMesh25.xml RUNTIME 4)
OgsTest(PROJECTFILE Mechanics/CooksMembrane/CooksMembraneSDRefinedMesh30.xml RUNTIME 4)
OgsTest(PROJECTFILE Mechanics/CooksMembrane/3D/CooksMembrane_3D.prj RUNTIME 1)
endif()

OgsTest(PROJECTFILE Mechanics/Linear/PythonPiston/piston.prj)
Expand Down
201 changes: 201 additions & 0 deletions Tests/Data/Mechanics/CooksMembrane/3D/CooksMembrane_3D.prj
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
<?xml version='1.0' encoding='ISO-8859-1'?>
<OpenGeoSysProject>
<mesh>mesh3D_n25.vtu</mesh>
<geometry>boundary.gml</geometry>
<processes>
<process>
<name>SD</name>
<type>SMALL_DEFORMATION</type>
<integration_order>3</integration_order>
<specific_body_force>0 0 0</specific_body_force>
<use_b_bar>true</use_b_bar>
<constitutive_relation>
<type>LinearElasticIsotropic</type>
<youngs_modulus>E</youngs_modulus>
<poissons_ratio>nu</poissons_ratio>
</constitutive_relation>
<process_variables>
<process_variable>displacement</process_variable>
</process_variables>
<secondary_variables>
<secondary_variable internal_name="sigma" output_name="sigma"/>
<secondary_variable internal_name="epsilon" output_name="epsilon"/>
</secondary_variables>
</process>
</processes>
<media>
<medium>
<phases>
<phase>
<type>Solid</type>
<properties>
<property>
<name>density</name>
<type>Constant</type>
<value>0.0</value>
</property>
</properties>
</phase>
</phases>
</medium>
</media>
<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>2</repeat>
<delta_t>1.0</delta_t>
</pair>
</timesteps>
</time_stepping>
</process>
</processes>
<output>
<type>VTK</type>
<prefix>cooks_membrane_ld_3D_n25</prefix>
<timesteps>
<pair>
<repeat>1</repeat>
<each_steps>10000000</each_steps>
</pair>
</timesteps>
<variables>
<variable>displacement</variable>
<variable>sigma</variable>
<variable>epsilon</variable>
</variables>
<suffix>_ts_{:timestep}_t_{:time}</suffix>
</output>
</time_loop>
<parameters>
<parameter>
<name>E</name>
<type>Constant</type>
<value>240.565e6</value>
</parameter>
<parameter>
<name>nu</name>
<type>Constant</type>
<value>0.4999</value>
</parameter>
<parameter>
<name>displacement0</name>
<type>Constant</type>
<values>0 0 0</values>
</parameter>
<parameter>
<name>Zero</name>
<type>Constant</type>
<value>0.</value>
</parameter>
<parameter>
<name>Dirichlet_bottom</name>
<type>Constant</type>
<value>0.</value>
</parameter>
<parameter>
<name>F</name>
<type>Constant</type>
<!-- F = 100/16 N/mm -->
<value>6250e3</value>
</parameter>
</parameters>
<process_variables>
<process_variable>
<name>displacement</name>
<components>3</components>
<order>1</order>
<initial_condition>displacement0</initial_condition>
<boundary_conditions>
<boundary_condition>
<geometrical_set>geometry</geometrical_set>
<geometry>z0</geometry>
<type>Dirichlet</type>
<component>2</component>
<parameter>Zero</parameter>
</boundary_condition>
<boundary_condition>
<geometrical_set>geometry</geometrical_set>
<geometry>z1</geometry>
<type>Dirichlet</type>
<component>2</component>
<parameter>Zero</parameter>
</boundary_condition>
<boundary_condition>
<geometrical_set>geometry</geometrical_set>
<geometry>left</geometry>
<type>Dirichlet</type>
<component>0</component>
<parameter>Zero</parameter>
</boundary_condition>
<boundary_condition>
<geometrical_set>geometry</geometrical_set>
<geometry>left</geometry>
<type>Dirichlet</type>
<component>1</component>
<parameter>Zero</parameter>
</boundary_condition>
<boundary_condition>
<geometrical_set>geometry</geometrical_set>
<geometry>right</geometry>
<type>Neumann</type>
<component>1</component>
<parameter>F</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>
<eigen>
<solver_type>SparseLU</solver_type>
<scaling>true</scaling>
</eigen>
</linear_solver>
</linear_solvers>

<test_definition>
<vtkdiff>
<file>cooks_membrane_ld_3D_n25_ts_1_t_1.000000.vtu</file>
<field>displacement</field>
<absolute_tolerance>1e-14</absolute_tolerance>
<relative_tolerance>1e-12</relative_tolerance>
</vtkdiff>
<vtkdiff>
<file>cooks_membrane_ld_3D_n25_ts_1_t_1.000000.vtu</file>
<field>epsilon</field>
<absolute_tolerance>5e-13</absolute_tolerance>
<relative_tolerance>1e-12</relative_tolerance>
</vtkdiff>
<vtkdiff>
<file>cooks_membrane_ld_3D_n25_ts_1_t_1.000000.vtu</file>
<field>sigma</field>
<absolute_tolerance>2e-3</absolute_tolerance>
<relative_tolerance>5e-7</relative_tolerance>
</vtkdiff>
</test_definition>

</OpenGeoSysProject>
35 changes: 35 additions & 0 deletions Tests/Data/Mechanics/CooksMembrane/3D/boundary.gml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="OpenGeoSysGLI.xsl"?>

<OpenGeoSysGLI xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ogs="http://www.opengeosys.org">
<name>geometry</name>
<points>
<point id="0" x="0." y="0." z="0." />
<point id="1" x="48.0e-3" y="44.0e-3" z="0." />
<point id="2" x="48.0e-3" y="60.0e-3" z="0." name="pnt0" />
<point id="3" x="0." y="44.0e-3" z="0." />
<point id="4" x="0." y="0." z="0.001" />
<point id="5" x="48.0e-3" y="44.0e-3" z="0.001" />
<point id="6" x="48.0e-3" y="60.0e-3" z="0.001" name="pnt2" />
<point id="7" x="0." y="44.0e-3" z="0.001" />
</points>

<surfaces>
<surface id="0" name="left">
<element p1="0" p2="4" p3="3"/>
<element p1="4" p2="7" p3="3"/>
</surface>
<surface id="1" name="right">
<element p1="2" p2="6" p3="5"/>
<element p1="1" p2="2" p3="5"/>
</surface>
<surface id="3" name="z0">
<element p1="0" p2="1" p3="3"/>
<element p1="1" p2="2" p3="3"/>
</surface>
<surface id="4" name="z1">
<element p1="4" p2="5" p3="7"/>
<element p1="5" p2="6" p3="7"/>
</surface>
</surfaces>
</OpenGeoSysGLI>

Large diffs are not rendered by default.

23 changes: 23 additions & 0 deletions Tests/Data/Mechanics/CooksMembrane/3D/mesh3D_n25.vtu

Large diffs are not rendered by default.

0 comments on commit 4580484

Please sign in to comment.