|  | OGS
    | 
 <OpenGeoSysProject>
   <mesh axially_symmetric="true">piston.vtu</mesh>
   <geometry>piston.gml</geometry>
   <python_script>piston_bc.py</python_script>
   <processes>
     <process>
       <name>SD</name>
       <type>SMALL_DEFORMATION</type>
       <integration_order>2</integration_order>
       <constitutive_relation>
         <type>LinearElasticIsotropic</type>
         <youngs_modulus>E</youngs_modulus>
         <poissons_ratio>nu</poissons_ratio>
       </constitutive_relation>
       <specific_body_force>0 0</specific_body_force>
       <process_variables>
         <process_variable>displacement</process_variable>
       </process_variables>
       <secondary_variables>
         <secondary_variable name="sigma" />
         <secondary_variable name="epsilon" />
       </secondary_variables>
     </process>
   </processes>
   <time_loop>
     <processes>
       <process ref="SD">
         <nonlinear_solver>basic_newton</nonlinear_solver>
         <convergence_criterion>
           <type>DeltaX</type>
           <norm_type>INFINITY_N</norm_type>
           <abstol>1e-16</abstol>
         </convergence_criterion>
         <time_discretization>
           <type>BackwardEuler</type>
         </time_discretization>
         <time_stepping>
           <type>FixedTimeStepping</type>
           <t_initial>0</t_initial>
           <t_end>10</t_end>
           <timesteps>
             <pair>
               <repeat>1</repeat>
               <delta_t>1</delta_t>
             </pair>
           </timesteps>
         </time_stepping>
       </process>
     </processes>
     <output>
       <type>VTK</type>
       <prefix>piston</prefix>
       <timesteps>
         <pair>
           <repeat>1</repeat>
           <each_steps>1</each_steps>
         </pair>
       </timesteps>
       <output_iteration_results>false</output_iteration_results>
       <variables>
         <variable>displacement</variable>
         <variable>sigma</variable>
         <variable>epsilon</variable>
       </variables>
       <suffix>ts{:timestep}_t_{:time}</suffix>
     </output>
   </time_loop>
   <media>
     <medium>
       <phases>
         <phase>
           <type>Solid</type>
           <properties>
             <property>
               <name>density</name>
               <type>Constant</type>
               <value>1</value>
             </property>
           </properties>
         </phase>
       </phases>
     </medium>
   </media>
   <parameters>
     <parameter>
       <name>E</name>
       <type>Constant</type>
       <value>1e6</value>
     </parameter>
     <parameter>
       <name>nu</name>
       <type>Constant</type>
       <value>.3</value>
     </parameter>
     <parameter>
       <name>displacement0</name>
       <type>Constant</type>
       <values>0 0</values>
     </parameter>
     <parameter>
       <name>zero</name>
       <type>Constant</type>
       <value>0</value>
     </parameter>
   </parameters>
   <process_variables>
     <process_variable>
       <name>displacement</name>
       <components>2</components>
       <order>1</order>
       <initial_condition>displacement0</initial_condition>
       <boundary_conditions>
         <boundary_condition>
           <geometrical_set>geom</geometrical_set>
           <geometry>whole_domain_boundary</geometry>
           <type>Python</type>
           <component>0</component>
           <bc_object>bc_x</bc_object>
           <flush_stdout>false</flush_stdout>
         </boundary_condition>
         <boundary_condition>
           <geometrical_set>geom</geometrical_set>
           <geometry>whole_domain_boundary</geometry>
           <type>Python</type>
           <component>1</component>
           <bc_object>bc_y</bc_object>
           <flush_stdout>false</flush_stdout>
         </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 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>piston_ts_5_t_5.000000.vtu</file>
       <field>displacement</field>
       <absolute_tolerance>1e-16</absolute_tolerance>
       <relative_tolerance>0</relative_tolerance>
     </vtkdiff>
     <vtkdiff>
       <file>piston_ts_5_t_5.000000.vtu</file>
       <field>epsilon</field>
       <absolute_tolerance>1e-14</absolute_tolerance>
       <relative_tolerance>0</relative_tolerance>
     </vtkdiff>
     <vtkdiff>
       <file>piston_ts_5_t_5.000000.vtu</file>
       <field>sigma</field>
       <absolute_tolerance>2e-8</absolute_tolerance>
       <relative_tolerance>0</relative_tolerance>
     </vtkdiff>
     <vtkdiff>
       <file>piston_ts_10_t_10.000000.vtu</file>
       <field>displacement</field>
       <absolute_tolerance>1e-16</absolute_tolerance>
       <relative_tolerance>0</relative_tolerance>
     </vtkdiff>
     <vtkdiff>
       <file>piston_ts_10_t_10.000000.vtu</file>
       <field>epsilon</field>
       <absolute_tolerance>2e-14</absolute_tolerance>
       <relative_tolerance>0</relative_tolerance>
     </vtkdiff>
     <vtkdiff>
       <file>piston_ts_10_t_10.000000.vtu</file>
       <field>sigma</field>
       <absolute_tolerance>3.4e-8</absolute_tolerance>
       <relative_tolerance>0</relative_tolerance>
     </vtkdiff>
   </test_definition>
 </OpenGeoSysProject>