Skip to content

Commit

Permalink
Merge pull request idaholab#226 from hrishiv/example6abc
Browse files Browse the repository at this point in the history
Created example 6a, 6b and 6c
  • Loading branch information
cbolisetti authored Aug 7, 2019
2 parents 9b51717 + 95345f7 commit 7300db9
Show file tree
Hide file tree
Showing 23 changed files with 6,926 additions and 2 deletions.
18 changes: 18 additions & 0 deletions doc/content/bib/mastodon.bib
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
@article{largedeflectioncantilever,
author = {Bisshopp, K.E. and Drucker, D.C.},
year = {1945},
month = {01},
pages = {272-275},
title = {Large Deflection of Cantilever Beams},
volume = {3},
journal = {Quarterly of Applied Mathematics},
doi = {10.1090/qam/13360}
}

@book{som,
author = {Joseph, and John Sauer Marin},
title = {Strength of Materials},
year = {1954},
publisher = {Macmillan}
}

@article{dormandprince,
author = {J.~R.~Dormand and P.~J.~Prince},
title = {A Family of Embedded Runge-Kutta Formulae},
Expand Down
2 changes: 1 addition & 1 deletion doc/content/examples/example5b.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Example 5b: Dynamic response of a stick model of a nuclear power plant the with mesh generated using text input
# Example 5b: Dynamic analysis of a stick model of a nuclear power plant with mesh generated using text input

## Model

Expand Down
63 changes: 63 additions & 0 deletions doc/content/examples/example6a.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Example 6a: Displacement-controlled contact problem with elastic soil

## Model Description

This example demonstrates frictional contact between a solid block and elastic soil in MASTODON. A 6 inch cubic block is centered on top of a 4 foot cubic block of soil. The top surface of the soil is free and the remaining surfaces are fixed in all directions. A uniform normal pressure of 5 psi is applied to the top of the smaller solid block and it is given a prescribed displacement in a direction parallel to the contact surface. The resulting normal and frictional forces at the interface of the two materials are then obtained and compared with analytical results.

## Modeling in MASTODON

!listing examples/ex06a/psf_grav.i

The mesh used in this model was generated externally using the mesh generation software, [Cubit](https://cubit.sandia.gov/). MASTODON imports the mesh shown in [fig:ex06input] using the `FileMesh` type specified in the `Mesh` block. Details regarding supported mesh file types can be found at [GettingStarted](manuals/user/index.md).

!media media/examples/ex06/ex06_input.png
style=width:50%;margin-left:150px;float:center;
id=fig:ex06input
caption=Input model in MASTODON.

The displacement variables are defined in the `Variables` block. The accelerations, velocities, normal and tangential (frictional) forces are defined as auxiliary variables in the `AuxVariables` block.

[TensorMechanics](syntax/index.md) and [InertialForce](syntax/index.md) kernels are used to model the dynamics of the 3D solid elements. The `Gravity` block is specified in `Kernels` in order to apply gravitational force to the entire model. The [Newmark time integration](manuals/theory/index.md) parameters used in this problem correspond to the Newmark's average acceleration method, i.e. `beta = 0.25` and `gamma = 0.5` and damping is ignored.

The [ComputeIsotropicElasticityTensorBeam](syntax/index.md) block is used to create the elasticity tensor of the solid block and the elastic soil, using Young's Modulus and Poisson's ratio. The stresses and strain are calculated using [ComputeFiniteStrainElasticStress](syntax/index.md) and [ComputeFiniteStrain](syntax/index.md). The densities are assigned to the solid block and the soil using [GenericConstantMaterial](syntax/index.md).

In the soil block, the top surface is free and all other surfaces are fixed in every direction. A uniform vertical pressure of 5 psi is applied to the top surface of the solid block and it is given the prescribed displacement history shown in [input_motion].

!plot scatter filename=examples/ex06a/input_motion.csv
data=[{'x':'time', 'y':'displacement'}]
layout={'xaxis':{'title':'Time (secs)'},'yaxis':{'title':'Displacement (in)'}, 'title':'Displacement of the block'}
caption=Input displacement of the block
id=input_motion

[Contact](manuals/user/index.md) is defined in MASTODON using the `Contact` block. This model is simulating Coulomb friction, with a coefficient of friction value equal to 0.7. The formulation implemented and demonstrated in this example uses a master/slave concept in which the nodes of the slave boundary are restricted by the nodes of the master surface boundary. Penetration is enforced using a penalty factor which is inversely related to the amount of penetration allowed (large penalty factor results in small amount of penetration and vice versa). The factor used in this example is 1e5.

!listing examples/ex06a/psf_grav.i start=Contact end=Preconditioning

Static analysis is performed by turning off inertial terms for a certain time period in the `Controls` block.
It stabilizes the system under the gravitational loading and pressure to perform dynamic analysis. The `Executioner` and the `Postprocessors` blocks are provided to solve the nonlinear system and extract the required data.

## Results

The graph for the frictional force as a function of displacement obtained from MASTODON is shown in [frictional_force].

!plot scatter filename=examples/ex06a/psf_grav_out.csv
data=[{'x':'dispx', 'y':'tang_forc_x'}]
layout={'xaxis':{'title':'Displacement (in)'},'yaxis':{'title':'Frictional Force (lbf)'}}
caption=Graph showing the frictional force as a function of displacement for Columb Friction Model
id=frictional_force

The graph for the normal force as a function of time obtained from MASTODON is shown in [normal_force].

!plot scatter filename=examples/ex06a/psf_grav_out.csv
data=[{'x':'time', 'y':'nor_forc'}]
layout={'xaxis':{'title':'Time (s)'},'yaxis':{'title':'Normal Force (lbf)'}}
caption=Graph showing the normal force as a function of time for Columb Friction Model
id=normal_force

## Theoretical Solution

Normal Force = density x volume x gravity + pressure x area = 198.7473 lbf

Frictional Force = coefficient of friction x Normal Force = 139.123 lbf

The results from MASTODON are in agreement with the theoretical calculations.
73 changes: 73 additions & 0 deletions doc/content/examples/example6b.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Example 6b: Displacement-controlled frictional contact problem with I-soil and using restart option for static initialization.

## Model Description

This example demonstrates frictional contact between a solid block and I-soil in MASTODON. A 6 inch cubic block is centered on top of a 4 foot cubic block of soil. The top surface of the soil is free and the remaining surfaces are fixed in all directions. A uniform normal pressure of 5 psi is applied to the top of the smaller solid block and it is given a prescribed displacement in a direction parallel to the contact surface. The resulting normal and frictional forces at the interface of the two materials are then obtained and compared with analytical results.

## Modeling in MASTODON

The simulation is carried out in two steps.

## Step 1: Stabilizing the system under the gravity and pressure forces

!listing examples/ex06b/stabilize_isoil.i

A static analysis is carried out in the first step to stabilize the system under the action of constant gravitational force and pressure force. The mesh shown in [fig:ex06_input] used in this model was generated externally using the mesh generation software, [Cubit](https://cubit.sandia.gov/). MASTODON imports the mesh using the `FileMesh` type specified in the `Mesh` block.

The displacement variables are defined in the `Variables` block. The accelerations, velocities, normal and tangential (frictional) forces are defined as auxiliary variables in the `AuxVariables` block.

!media media/examples/ex06/ex06_input.png
style=width:50%;margin-left:150px;float:center;
id=fig:ex06_input
caption=Input model in MASTODON


[TensorMechanics](syntax/index.md) kernel is used to set up the stress divergence kernels and [Gravity](syntax/index.md) kernel is used to apply the gravitational force. The [ComputeIsotropicElasticityTensorBeam](syntax/index.md) block is used to create the elasticity tensor of the elastic solid block, using Young's Modulus and Poisson's ratio. The stresses and strain are calculated using [ComputeFiniteStrainElasticStress](syntax/index.md) and [ComputeFiniteStrain](syntax/index.md). The densities are assigned to the solid block and the soil using [GenericConstantMaterial](syntax/index.md).

The I-soil block is used to create a nonlinear hysteretic soil model. The detailed explanation for this model can be found at [I-soil](syntax/Materials/I_Soil/index.md).

In the soil block, the top surface is free and all other surfaces are fixed in every direction. A uniform vertical pressure of 5 psi is applied to the top surface of the solid block.

[Contact](manuals/user/index.md) is defined in MASTODON using the `Contact` block. This model is simulating Coulomb friction, with a coefficient of friction value equal to 0.2. The formulation implemented and demonstrated in this example uses a master/slave concept in which the nodes of the slave boundary are restricted by the nodes of the master surface boundary. Penetration is enforced using a penalty factor which is inversely related to the amount of penetration allowed (large penalty factor results in small amount of penetration and vice versa). The factor used in this example is 1e5.

!listing examples/ex06b/stabilize_isoil.i start=Contact end=Preconditioning

The use of restart in the MOOSE framework requires to specify `checkpoints` in the `Outputs` block. The `checkpoint` creates a set of files that be used as an initial condition for the next simulation.

!listing examples/ex06b/stabilize_isoil.i start=Outputs

## Step 2: Performing the dynamic simulation using the stabilized system

!listing examples/ex06b/actual_simulation_isoil.i

The final state of the previous simulation is used as an input file for the dynamic simulation using the `Mesh`. `Problem` block is used to define the advanced restart option as shown below.

!listing examples/ex06b/actual_simulation_isoil.i start=Mesh end=GlobalParams

The remaining input file is similar to the input file used in the previous step. The aux variables and the kernels required for the dynamic analysis are added and the input motion is applied to the block as shown in [input_motion].

!plot scatter filename=examples/ex06a/input_motion.csv
data=[{'x':'time', 'y':'displacement'}]
layout={'xaxis':{'title':'Time (secs)'},'yaxis':{'title':'Displacement (in)'}, 'title':'Displacement of the block'}
caption=Input displacement of the block
id=input_motion


## Results

The graph for the frictional force as a function of displacement obtained from MASTODON is shown in [frictional_force].

!plot scatter filename=examples/ex06b/finalresult.csv
data=[{'x':'dispx', 'y':'tang_forc_x'}]
layout={'xaxis':{'title':'Displacement (in)'},'yaxis':{'title':'Frictional Force (lbf)'}}
caption=Frictional force as a function of displacement for Coulomb friction model
id=frictional_force


## Theoretical Solution

Normal Force = density x volume x gravity + pressure x area = 198.7473 lbf

Frictional Force = coefficient of friction x Normal Force = 39.749 lbf

The results from MASTODON are in agreement with the theoretical calculations.
45 changes: 45 additions & 0 deletions doc/content/examples/example6c.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Example 6c: Force-controlled frictional contact problem.

## Model Description

This example demonstrates frictional contact between a solid block and elastic soil in MASTODON. A 6 inch cubic block is centered on top of a 4 foot cubic block of soil. The top surface of the soil is free and the remaining surfaces are fixed in all directions. A uniform normal pressure of 5 psi is applied to the top of the smaller solid block and force is applied to the block in direction parallel to the contact surface. The resulting normal and frictional forces at the interface of the two materials are then obtained and compared with analytical results.

## Modeling in MASTODON

The simulation is carried out in two steps.

## Step 1: Stabilizing the system under the gravity and pressure forces

!listing examples/ex06c/stabilize_lc.i

A static analysis is carried out in the mesh shown in [fig:ex06input] in the first step to stabilize the system under the action of constant gravitational force and pressure force as explained in [Example 6b](examples/example6b)

!media media/examples/ex06/ex06_input.png
style=width:50%;margin-left:150px;float:center;
id=fig:ex06input
caption=Input model in MASTODON.

## Step 2: Performing the dynamic simulation using the stabilized system

!listing examples/ex06c/actual_simulation_lc.i

Advanced restart is used to continue the simulation as discussed in [Example 6b](examples/example6b). A linearly ramping force from 0 lbf to 155 lbf is applied to the solid block.

## Results

The graph for the frictional force as a function of displacement obtained from MASTODON is shown in [frictional_force].

!plot scatter filename=examples/ex06c/results55.csv
data=[{'x':'force2x', 'y':'tang_forc_x'}]
layout={'xaxis':{'title':'Applied Force (lbf)'},'yaxis':{'title':'Frictional Force (lbf)'}}
caption=Graph showing the frictional force as a function of applied force for Columb Friction Model
id=frictional_force


## Theoretical Solution

Normal Force = density x volume x gravity + pressure x area = 198.7473 lbf

Maximum Frictional Force = coefficient of friction x Normal Force = 139.123 lbf

The frictional force increases linearly from 0 to 139.123 and remains constant after the block starts sliding. The same behavior is seen in the [frictional_force] obtained from MASTODON.
5 changes: 4 additions & 1 deletion doc/content/examples/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@ A list of example simulations using MASTODON is provided below. These examples i
- [Example 3](examples/example3.md): Nonlinear site-response analysis.
- [Example 4](examples/example4.md): Frictional contact using a user-defined backbone curve in I-Soil.
- [Example 5a](examples/example5a.md): Dynamic analysis of a simplified model of a nuclear power plant structure.
- [Example 5b](examples/example5b.md): Dynamic response of a simplified 1D model of nuclear power plant with mesh generated using BeamMeshGenerator.
- [Example 5b](examples/example5b.md): Dynamic response of a simplified 1D model of nuclear power plant with a mesh generated using BeamMeshGenerator.
- [Example 6a](examples/example6a.md): Displacement-controlled frictional contact problem with elastic soil.
- [Example 6b](examples/example6b.md): Displacement-controlled frictional contact problem with I-soil and using the restart option for static initialization.
- [Example 6c](examples/example6c.md): Force-controlled contact problem.
- [Example 7](examples/example7.md): Demonstration of domain reduction method.


Expand Down
Binary file added doc/content/media/examples/ex06/ex06_input.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/ex06a/contact_modified.e
Binary file not shown.
Loading

0 comments on commit 7300db9

Please sign in to comment.