From e955efaff64d1e19bfc106fc555a593d47f15c9b Mon Sep 17 00:00:00 2001 From: Johannes Boog <johannesboog@yahoo.de> Date: Wed, 7 Dec 2022 22:57:50 +0100 Subject: [PATCH] [benchmark] add bm with top-level include tag --- .../cube_1x1x1.gml | 95 +++++++ .../cube_1x1x1_quad.vtu | 22 ++ .../cube_strain_flow_data.include | 132 ++++++++++ .../ref_x_strain_y_flow.prj | 248 ++++++++++++++++++ .../x_strain_y_flow.prj | 119 +++++++++ 5 files changed, 616 insertions(+) create mode 100644 inst/extdata/benchmarks/OrthotropicEmbeddedFracturePermeability/cube_1x1x1.gml create mode 100644 inst/extdata/benchmarks/OrthotropicEmbeddedFracturePermeability/cube_1x1x1_quad.vtu create mode 100644 inst/extdata/benchmarks/OrthotropicEmbeddedFracturePermeability/cube_strain_flow_data.include create mode 100644 inst/extdata/benchmarks/OrthotropicEmbeddedFracturePermeability/ref_x_strain_y_flow.prj create mode 100644 inst/extdata/benchmarks/OrthotropicEmbeddedFracturePermeability/x_strain_y_flow.prj diff --git a/inst/extdata/benchmarks/OrthotropicEmbeddedFracturePermeability/cube_1x1x1.gml b/inst/extdata/benchmarks/OrthotropicEmbeddedFracturePermeability/cube_1x1x1.gml new file mode 100644 index 0000000..dae3667 --- /dev/null +++ b/inst/extdata/benchmarks/OrthotropicEmbeddedFracturePermeability/cube_1x1x1.gml @@ -0,0 +1,95 @@ +<?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>cube_1x1x1_geometry</name> + <points> + <point id="0" x="0" y="0" z="0" name="origin"/> + <point id="1" x="0" y="0" z="1"/> + <point id="2" x="0" y="1" z="1"/> + <point id="3" x="0" y="1" z="0"/> + + <point id="4" x="1" y="0" z="0"/> + <point id="5" x="1" y="0" z="1"/> + <point id="6" x="1" y="1" z="1"/> + <point id="7" x="1" y="1" z="0"/> + </points> + + <polylines> + <polyline id="0" name="front_left"> + <pnt>0</pnt> + <pnt>1</pnt> + </polyline> + <polyline id="1" name="front_right"> + <pnt>4</pnt> + <pnt>5</pnt> + </polyline> + <polyline id="2" name="front_bottom"> + <pnt>0</pnt> + <pnt>4</pnt> + </polyline> + <polyline id="3" name="front_top"> + <pnt>1</pnt> + <pnt>5</pnt> + </polyline> + <polyline id="4" name="bottom_left"> + <pnt>0</pnt> + <pnt>3</pnt> + </polyline> + <polyline id="5" name="bottom_right"> + <pnt>4</pnt> + <pnt>7</pnt> + </polyline> + <polyline id="6" name="top_left"> + <pnt>1</pnt> + <pnt>2</pnt> + </polyline> + <polyline id="7" name="top_right"> + <pnt>5</pnt> + <pnt>6</pnt> + </polyline> + <polyline id="8" name="back_left"> + <pnt>2</pnt> + <pnt>3</pnt> + </polyline> + <polyline id="9" name="back_right"> + <pnt>6</pnt> + <pnt>7</pnt> + </polyline> + <polyline id="10" name="back_bottom"> + <pnt>3</pnt> + <pnt>7</pnt> + </polyline> + <polyline id="11" name="back_top"> + <pnt>2</pnt> + <pnt>6</pnt> + </polyline> + </polylines> + + <surfaces> + <surface id="0" name="left"><!-- x=0 --> + <element p1="0" p2="1" p3="2"/> + <element p1="0" p2="3" p3="2"/> + </surface> + <surface id="1" name="right"><!-- x=1 --> + <element p1="4" p2="6" p3="5"/> + <element p1="4" p2="6" p3="7"/> + </surface> + <surface id="2" name="top"><!-- z=1 --> + <element p1="1" p2="2" p3="5"/> + <element p1="5" p2="2" p3="6"/> + </surface> + <surface id="3" name="bottom"><!-- z=0 --> + <element p1="0" p2="3" p3="4"/> + <element p1="4" p2="3" p3="7"/> + </surface> + <surface id="4" name="front"><!-- y=0 --> + <element p1="0" p2="1" p3="4"/> + <element p1="4" p2="1" p3="5"/> + </surface> + <surface id="5" name="back"><!-- y=1 --> + <element p1="2" p2="3" p3="6"/> + <element p1="6" p2="3" p3="7"/> + </surface> + </surfaces> +</OpenGeoSysGLI> diff --git a/inst/extdata/benchmarks/OrthotropicEmbeddedFracturePermeability/cube_1x1x1_quad.vtu b/inst/extdata/benchmarks/OrthotropicEmbeddedFracturePermeability/cube_1x1x1_quad.vtu new file mode 100644 index 0000000..cfbcf91 --- /dev/null +++ b/inst/extdata/benchmarks/OrthotropicEmbeddedFracturePermeability/cube_1x1x1_quad.vtu @@ -0,0 +1,22 @@ +<?xml version="1.0"?> +<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32"> + <UnstructuredGrid> + <Piece NumberOfPoints="20" NumberOfCells="1" > + <PointData> + </PointData> + <CellData> + </CellData> + <Points> + <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0" RangeMax="1.7320508076" offset="0" /> + </Points> + <Cells> + <DataArray type="Int64" Name="connectivity" format="appended" RangeMin="" RangeMax="" offset="648" /> + <DataArray type="Int64" Name="offsets" format="appended" RangeMin="" RangeMax="" offset="868" /> + <DataArray type="UInt8" Name="types" format="appended" RangeMin="" RangeMax="" offset="884" /> + </Cells> + </Piece> + </UnstructuredGrid> + <AppendedData encoding="base64"> + _4AEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAPA/AAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADgPwAAAAAAAAAAAAAAAAAA4D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA4D8AAAAAAADwPwAAAAAAAAAAAAAAAAAA8D8AAAAAAADgPwAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAADwPwAAAAAAAOA/AAAAAAAA8D8AAAAAAAAAAAAAAAAAAOA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAAAAAAAAAAAADgPwAAAAAAAPA/AAAAAAAA4D8AAAAAAAAAAAAAAAAAAPA/AAAAAAAA4D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADgPw==oAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAAAAAAIAAAAAAAAABAAAAAAAAAAFAAAAAAAAAAcAAAAAAAAABgAAAAAAAAAMAAAAAAAAABEAAAAAAAAADgAAAAAAAAAJAAAAAAAAAA0AAAAAAAAAEgAAAAAAAAAPAAAAAAAAAAoAAAAAAAAACAAAAAAAAAAQAAAAAAAAABMAAAAAAAAACwAAAAAAAAA=CAAAABQAAAAAAAAAAQAAABk= + </AppendedData> +</VTKFile> diff --git a/inst/extdata/benchmarks/OrthotropicEmbeddedFracturePermeability/cube_strain_flow_data.include b/inst/extdata/benchmarks/OrthotropicEmbeddedFracturePermeability/cube_strain_flow_data.include new file mode 100644 index 0000000..62fab02 --- /dev/null +++ b/inst/extdata/benchmarks/OrthotropicEmbeddedFracturePermeability/cube_strain_flow_data.include @@ -0,0 +1,132 @@ +<mesh>cube_1x1x1_quad.vtu</mesh> +<geometry>cube_1x1x1.gml</geometry> +<processes> + <process> + <name>HM</name> + <type>HYDRO_MECHANICS</type> + <integration_order>3</integration_order> + <dimension>3</dimension> + <constitutive_relation> + <type>LinearElasticIsotropic</type> + <youngs_modulus>E</youngs_modulus> + <poissons_ratio>nu</poissons_ratio> + </constitutive_relation> + <process_variables> + <displacement>displacement</displacement> + <pressure>pressure</pressure> + </process_variables> + <secondary_variables> + <secondary_variable internal_name="sigma" output_name="sigma"/> + <secondary_variable internal_name="epsilon" output_name="epsilon"/> + <secondary_variable internal_name="velocity" output_name="velocity"/> + </secondary_variables> + <specific_body_force>0 0 0</specific_body_force> + </process> +</processes> +<media> + <medium> + <phases> + <phase> + <type>Gas</type> + <properties> + <property> + <name>viscosity</name> + <type>Constant</type> + <value>1e-3</value> + </property> + <property> + <name>density</name> + <type>Constant</type> + <value>1</value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>density</name> + <type>Constant</type> + <value>2000</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.01</value> + </property> + <property> + <name>biot_coefficient</name> + <type>Constant</type> + <value>0</value> + </property> + <property> + <name>reference_temperature</name> + <type>Constant</type> + <value>293.15</value> + </property> + <property> + <name>permeability</name> + <type>OrthotropicEmbeddedFracturePermeability</type> + <intrinsic_permeability>k</intrinsic_permeability> + <mean_frac_distances>1e-4 2e-4 3e-4</mean_frac_distances> + <threshold_strains>10e-5 5e-5 1e-5</threshold_strains> + <fracture_normals> 1 0 0 0 1 0 </fracture_normals> + <fracture_rotation_xy>zero</fracture_rotation_xy> + <fracture_rotation_yz>zero</fracture_rotation_yz> + </property> + </properties> + </medium> +</media> +<parameters> + <!-- Mechanics --> + <parameter> + <name>E</name> + <type>Constant</type> + <value>1e9</value> + </parameter> + <parameter> + <name>nu</name> + <type>Constant</type> + <value>.3</value> + </parameter> + <!-- Model parameters --> + <parameter> + <name>k</name> + <type>Constant</type> + <value>1e-19</value> + </parameter> + <parameter> + <name>displacement0</name> + <type>Constant</type> + <values>0 0 0</values> + </parameter> + <parameter> + <name>pressure_ic</name> + <type>Constant</type> + <values>1e5</values> + </parameter> + <parameter> + <name>flow_in</name> + <type>Constant</type> + <values>1e-10</values> + </parameter> + <parameter> + <name>dirichlet0</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>disp</name> + <type>Constant</type> + <value>5e-4</value> + </parameter> + <parameter> + <name>zero</name> + <type>Constant</type> + <value>0</value> + </parameter> +</parameters> \ No newline at end of file diff --git a/inst/extdata/benchmarks/OrthotropicEmbeddedFracturePermeability/ref_x_strain_y_flow.prj b/inst/extdata/benchmarks/OrthotropicEmbeddedFracturePermeability/ref_x_strain_y_flow.prj new file mode 100644 index 0000000..47e8aaf --- /dev/null +++ b/inst/extdata/benchmarks/OrthotropicEmbeddedFracturePermeability/ref_x_strain_y_flow.prj @@ -0,0 +1,248 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<OpenGeoSysProject> + <mesh>cube_1x1x1_quad.vtu</mesh> + <geometry>cube_1x1x1.gml</geometry> + <processes> + <process> + <name>HM</name> + <type>HYDRO_MECHANICS</type> + <integration_order>3</integration_order> + <process_variables> + <displacement>displacement</displacement> + <pressure>pressure</pressure> + </process_variables> + <secondary_variables> + <secondary_variable internal_name="sigma" output_name="sigma"/> + <secondary_variable internal_name="epsilon" output_name="epsilon"/> + <secondary_variable internal_name="velocity" output_name="velocity"/> + </secondary_variables> + <specific_body_force>0 0 0</specific_body_force> + <dimension>3</dimension> + <constitutive_relation> + <type>LinearElasticIsotropic</type> + <youngs_modulus>E</youngs_modulus> + <poissons_ratio>nu</poissons_ratio> + </constitutive_relation> + </process> + </processes> + <process_variables> + <process_variable> + <name>displacement</name> + <components>3</components> + <order>2</order> + <initial_condition>displacement0</initial_condition> + <boundary_conditions> + <boundary_condition> + <type>Dirichlet</type> + <parameter>dirichlet0</parameter> + <geometrical_set>cube_1x1x1_geometry</geometrical_set> + <geometry>left</geometry> + <component>0</component> + </boundary_condition> + <boundary_condition> + <type>Dirichlet</type> + <parameter>disp</parameter> + <geometrical_set>cube_1x1x1_geometry</geometrical_set> + <geometry>right</geometry> + <component>0</component> + </boundary_condition> + </boundary_conditions> + </process_variable> + <process_variable> + <name>pressure</name> + <components>1</components> + <order>1</order> + <initial_condition>pressure_ic</initial_condition> + <boundary_conditions> + <boundary_condition> + <type>Neumann</type> + <parameter>flow_in</parameter> + <geometrical_set>cube_1x1x1_geometry</geometrical_set> + <geometry>front</geometry> + <component>0</component> + </boundary_condition> + <boundary_condition> + <type>Dirichlet</type> + <parameter>pressure_ic</parameter> + <geometrical_set>cube_1x1x1_geometry</geometrical_set> + <geometry>back</geometry> + <component>0</component> + </boundary_condition> + </boundary_conditions> + </process_variable> + </process_variables> + <media> + <medium> + <phases> + <phase> + <type>Gas</type> + <properties> + <property> + <name>viscosity</name> + <type>Constant</type> + <value>0.001</value> + </property> + <property> + <name>density</name> + <type>Constant</type> + <value>1</value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>density</name> + <type>Constant</type> + <value>2000</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.01</value> + </property> + <property> + <name>biot_coefficient</name> + <type>Constant</type> + <value>0</value> + </property> + <property> + <name>reference_temperature</name> + <type>Constant</type> + <value>293.15</value> + </property> + <property> + <name>permeability</name> + <type>OrthotropicEmbeddedFracturePermeability</type> + <intrinsic_permeability>k</intrinsic_permeability> + <mean_frac_distances>1e-4 2e-4 3e-4</mean_frac_distances> + <threshold_strains>10e-5 5e-5 1e-5</threshold_strains> + <fracture_normals>1 0 0 0 1 0</fracture_normals> + <fracture_rotation_xy>zero</fracture_rotation_xy> + <fracture_rotation_yz>zero</fracture_rotation_yz> + </property> + </properties> + </medium> + </media> + <time_loop> + <processes> + <process ref="HM"> + <nonlinear_solver>basic_newton</nonlinear_solver> + <convergence_criterion> + <type>PerComponentDeltaX</type> + <norm_type>NORM2</norm_type> + <reltols>1e-15 1e-15 1e-15 1e-15</reltols> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial>0</t_initial> + <t_end>1e+09</t_end> + <timesteps> + <pair> + <repeat>1</repeat> + <delta_t>1e+08</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + </processes> + <output> + <type>VTK</type> + <prefix>x_strain_y_flow</prefix> + <variables> + <variable>displacement</variable> + <variable>pressure</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> + <variable>velocity</variable> + </variables> + <timesteps> + <pair> + <repeat>1</repeat> + <each_steps>10</each_steps> + </pair> + </timesteps> + </output> + </time_loop> + <linear_solvers> + <linear_solver> + <name>general_linear_solver</name> + <eigen> + <solver_type>BiCGSTAB</solver_type> + <precon_type>DIAGONAL</precon_type> + <max_iteration_step>10000</max_iteration_step> + <error_tolerance>1e-12</error_tolerance> + </eigen> + <lis>-i bicgstab -p ilu -tol 1e-12 -maxiter 10000</lis> + </linear_solver> + </linear_solvers> + <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> + <parameters> + <parameter> + <name>E</name> + <type>Constant</type> + <value>1e+09</value> + </parameter> + <parameter> + <name>nu</name> + <type>Constant</type> + <value>0.3</value> + </parameter> + <parameter> + <name>k</name> + <type>Constant</type> + <value>1e-19</value> + </parameter> + <parameter> + <name>displacement0</name> + <type>Constant</type> + <values>0 0 0</values> + </parameter> + <parameter> + <name>pressure_ic</name> + <type>Constant</type> + <values>1e+05</values> + </parameter> + <parameter> + <name>flow_in</name> + <type>Constant</type> + <values>1e-10</values> + </parameter> + <parameter> + <name>dirichlet0</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>disp</name> + <type>Constant</type> + <value>5e-04</value> + </parameter> + <parameter> + <name>zero</name> + <type>Constant</type> + <value>0</value> + </parameter> + </parameters> +</OpenGeoSysProject> diff --git a/inst/extdata/benchmarks/OrthotropicEmbeddedFracturePermeability/x_strain_y_flow.prj b/inst/extdata/benchmarks/OrthotropicEmbeddedFracturePermeability/x_strain_y_flow.prj new file mode 100644 index 0000000..b5a64de --- /dev/null +++ b/inst/extdata/benchmarks/OrthotropicEmbeddedFracturePermeability/x_strain_y_flow.prj @@ -0,0 +1,119 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<OpenGeoSysProject> + <include file="cube_strain_flow_data.include"/> + <time_loop> + <processes> + <process ref="HM"> + <nonlinear_solver>basic_newton</nonlinear_solver> + <convergence_criterion> + <type>PerComponentDeltaX</type> + <norm_type>NORM2</norm_type> + <reltols>1e-15 1e-15 1e-15 1e-15</reltols> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial>0</t_initial> + <t_end>1e9</t_end> + <timesteps> + <pair> + <repeat>1</repeat> + <delta_t>1e8</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + </processes> + <output> + <type>VTK</type> + <prefix>x_strain_y_flow</prefix> + <timesteps> + <pair> + <repeat>1</repeat> + <each_steps>10</each_steps> + </pair> + </timesteps> + <variables> + <variable>displacement</variable> + <variable>pressure</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> + <variable>velocity</variable> + </variables> + </output> + </time_loop> + <process_variables> + <process_variable> + <name>displacement</name> + <components>3</components> + <order>2</order> + <initial_condition>displacement0</initial_condition> + <boundary_conditions> + <boundary_condition> + <geometrical_set>cube_1x1x1_geometry</geometrical_set> + <geometry>left</geometry> + <type>Dirichlet</type> + <component>0</component> + <parameter>dirichlet0</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>cube_1x1x1_geometry</geometrical_set> + <geometry>right</geometry> + <type>Dirichlet</type> + <component>0</component> + <parameter>disp</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + <process_variable> + <name>pressure</name> + <components>1</components> + <order>1</order> + <initial_condition>pressure_ic</initial_condition> + <boundary_conditions> + <boundary_condition> + <geometrical_set>cube_1x1x1_geometry</geometrical_set> + <geometry>front</geometry> + <type>Neumann</type> + <component>0</component> + <parameter>flow_in</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>cube_1x1x1_geometry</geometrical_set> + <geometry>back</geometry> + <type>Dirichlet</type> + <component>0</component> + <parameter>pressure_ic</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 ilu -tol 1e-12 -maxiter 10000</lis> + <eigen> + <solver_type>BiCGSTAB</solver_type> + <precon_type>DIAGONAL</precon_type> + <max_iteration_step>10000</max_iteration_step> + <error_tolerance>1e-12</error_tolerance> + </eigen> + </linear_solver> + </linear_solvers> +</OpenGeoSysProject> -- GitLab