Revision 53045661146c14dc9a33b82eff245afae81773ea authored by Tobias Meisel on 04 May 2021, 07:42:35 UTC, committed by Dmitry Yu. Naumov on 11 May 2021, 19:02:42 UTC
1 parent 7c29e83
Raw File
tpb_rgranite.prj
<?xml version="1.0" encoding="ISO-8859-1"?>
<OpenGeoSysProject>
    <meshes>
        <mesh>TPB_RGranite_small_rev8.vtu</mesh>
        <mesh>BC_TPB_tamper1.vtu</mesh>
        <mesh>BC_TPB_tamper2.vtu</mesh>
        <mesh>BC_TPB_bot_dx.vtu</mesh>
        <mesh>BC_TPB_bot_sx.vtu</mesh>
        <mesh>BC_LinearElastic_rev8.vtu</mesh>
    </meshes>
    <processes>
        <process>
            <name>PhaseField</name>
            <type>PHASE_FIELD</type>
            <coupling_scheme>staggered</coupling_scheme>
            <at_num>2</at_num>
            <integration_order>2</integration_order>
            <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>
                <kinetic_coefficient>M</kinetic_coefficient>
                <history_field>H</history_field>
            </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-10</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>10000</repeat>
                            <delta_t>0.01</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-10</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>10000</repeat>
                            <delta_t>0.01</delta_t>
                        </pair>
                    </timesteps>
                </time_stepping>
            </process>
        </processes>
        <output>
            <type>VTK</type>
            <prefix>Rockville_AT1</prefix>
            <variables>
                <variable>displacement</variable>
                <variable>sigma</variable>
                <variable>epsilon</variable>
                <variable>phasefield</variable>
            </variables>
            <timesteps>
                <pair>
                    <repeat>100</repeat>
                    <each_steps>1</each_steps>
                </pair>
                <pair>
                    <repeat>10</repeat>
                    <each_steps>1</each_steps>
                </pair>
            </timesteps>
        </output>
    </time_loop>
    <parameters>
        <parameter>
            <name>E</name>
            <type>Constant</type>
            <value>1.0</value>
        </parameter>
        <parameter>
            <name>nu</name>
            <type>Constant</type>
            <value>0.175</value>
        </parameter>
        <parameter>
            <name>k</name>
            <type>Constant</type>
            <value>1e-8</value>
        </parameter>
        <parameter>
            <name>gc</name>
            <type>Constant</type>
            <value>1.</value>
            <!--type>MeshElement</type>
            <field_name>Gc</field_name>-->
        </parameter>
        <parameter>
            <name>ls</name>
            <type>Constant</type>
            <value>0.0015</value>
        </parameter>
        <parameter>
            <name>H</name>
            <type>Constant</type>
            <value>0.0</value>
        </parameter>
        <parameter>
            <name>rho_sr</name>
            <type>Constant</type>
            <value>0.0</value>
        </parameter>
        <parameter>
            <name>M</name>
            <type>Constant</type>
            <value>0.0</value>
        </parameter>
        <parameter>
            <name>displacement0</name>
            <type>Constant</type>
            <values>0 0 0</values>
        </parameter>
        <parameter>
            <name>Dirichlet_left_x</name>
            <type>Constant</type>
            <value>0.</value>
        </parameter>
        <parameter>
            <name>Dirichlet_left_y</name>
            <type>Constant</type>
            <value>0.</value>
        </parameter>
        <parameter>
            <name>Dirichlet_left_z</name>
            <type>Constant</type>
            <value>0.</value>
        </parameter>
        <parameter>
            <name>Dirichlet_right_y</name>
            <type>Constant</type>
            <value>0.</value>
        </parameter>
        <parameter>
            <name>Dirichlet_front</name>
            <type>Constant</type>
            <value>0.</value>
        </parameter>
        <parameter>
            <name>Dirichlet_top_spatial</name>
            <type>Constant</type>
            <value>1</value>
        </parameter>
        <parameter>
            <name>Dirichlet_top</name>
            <type>CurveScaled</type>
            <curve>Dirichlet_top_temporal</curve>
            <parameter>Dirichlet_top_spatial</parameter>
        </parameter>
        <parameter>
            <name>phasefield_ic</name>
            <type>MeshNode</type>
            <field_name>pf-ic</field_name>
            <!--type>Constant</type>
            <value>1</value>-->
        </parameter>
        <parameter>
            <name>phasefield_bc</name>
            <type>Constant</type>
            <value>1.0</value>
        </parameter>
    </parameters>
    <curves>
        <curve>
            <name>Dirichlet_top_temporal</name>
            <coords>0. 1.</coords>
            <values>0. -3.0</values>
        </curve>
    </curves>
    <process_variables>
        <process_variable>
            <name>displacement</name>
            <components>3</components>
            <order>1</order>
            <initial_condition>displacement0</initial_condition>
            <boundary_conditions>
                <!-- fixed boundaries -->
                <!--boundary_condition>
                    <mesh>BC_TPB_bot_sx</mesh>
                    <type>Dirichlet</type>
                    <component>0</component>
                    <parameter>Dirichlet_left_x</parameter>
                </boundary_condition>-->
                <boundary_condition>
                    <mesh>BC_TPB_bot_sx</mesh>
                    <type>Dirichlet</type>
                    <component>1</component>
                    <parameter>Dirichlet_left_y</parameter>
                </boundary_condition>
                <boundary_condition>
                    <mesh>BC_TPB_bot_sx</mesh>
                    <type>Dirichlet</type>
                    <component>0</component>
                    <parameter>Dirichlet_left_y</parameter>
                </boundary_condition>
                <!--boundary_condition>
                    <mesh>BC_TPB_p1</mesh>
                    <type>Dirichlet</type>
                    <component>2</component>
                    <parameter>Dirichlet_left_z</parameter>
                </boundary_condition>-->
                <!--boundary_condition>
                    <mesh>BC_TPB_p3</mesh>
                    <type>Dirichlet</type>
                    <component>2</component>
                    <parameter>Dirichlet_left_z</parameter>
                </boundary_condition>-->
                <boundary_condition>
                    <mesh>BC_TPB_bot_dx</mesh>
                    <type>Dirichlet</type>
                    <component>1</component>
                    <parameter>Dirichlet_right_y</parameter>
                </boundary_condition>
                <boundary_condition>
                    <mesh>BC_TPB_tamper1</mesh>
                    <type>Dirichlet</type>
                    <component>1</component>
                    <parameter>Dirichlet_top</parameter>
                </boundary_condition>
                <boundary_condition>
                    <mesh>BC_TPB_tamper2</mesh>
                    <type>Dirichlet</type>
                    <component>1</component>
                    <parameter>Dirichlet_top</parameter>
                </boundary_condition>
            </boundary_conditions>
        </process_variable>
        <process_variable>
            <name>phasefield</name>
            <components>1</components>
            <order>1</order>
            <initial_condition>phasefield_ic</initial_condition>
            <boundary_conditions>
                <!--boundary_condition>
                    <mesh>BC_TPB_bot_dx</mesh>
                    <type>PhaseFieldIrreversibleDamageOracleBoundaryCondition</type>
                    <component>0</component>
                </boundary_condition>-->
                <!--boundary_condition>
                    <mesh>BC_TPB_tamper</mesh>
                    <type>Dirichlet</type>
                    <component>0</component>
                    <parameter>phasefield_bc</parameter>
                </boundary_condition>-->
                <boundary_condition>
                    <mesh>BC_LinearElastic_rev8</mesh>
                    <type>Dirichlet</type>
                    <component>0</component>
                    <parameter>phasefield_bc</parameter>
                </boundary_condition>
            </boundary_conditions>
        </process_variable>
    </process_variables>
    <nonlinear_solvers>
        <nonlinear_solver>
            <name>petsc_snes</name>
            <type>PETScSNES</type>
            <max_iter>200</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-6 -ksp_rtol 1e-8 -snes_type vinewtonssls -snes_linesearch_type l2 -snes_atol 1.e-6 -snes_rtol 1.e-6 -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-6 -ksp_rtol 1e-8 </parameters>
            </petsc>
        </linear_solver>
    </linear_solvers>
</OpenGeoSysProject>
back to top