Skip to content

Commit

Permalink
Merge pull request #212 from cbolisetti/rtm-55
Browse files Browse the repository at this point in the history
Adding requirements and made changes for V&V manual. Refs #55, #59, and #173.
  • Loading branch information
aeslaughter authored Jun 12, 2019
2 parents ca4879f + 839ff9d commit 3aab2c6
Show file tree
Hide file tree
Showing 44 changed files with 417 additions and 58 deletions.
8 changes: 8 additions & 0 deletions doc/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ Content:
- getting_started/**
- help/development/**
- media/**
- templates/**
- bib/**

Renderer:
type: MooseDocs.base.MaterializeRenderer
Expand Down Expand Up @@ -70,3 +72,9 @@ Extensions:

MooseDocs.extensions.acronym:
acronyms: !include ${MOOSE_DIR}/framework/doc/acronyms.yml

MooseDocs.extensions.sqa:
repo: idaholab/mastodon
requirement-groups:
dgkernels: DGKernel Objects
interfacekernels: InterfaceKernel Objects
72 changes: 36 additions & 36 deletions doc/content/manuals/include/materials/fp_isolator-theory.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
### Friction Pendulum<sup>TM</sup> Isolator
### Friction Pendulum^TM^ Isolator

Friction Pendulum<sup>TM</sup> (FP) bearings are used to seismically isolate structures, including critical facilities such as nuclear power plants. The single concave FP bearing consists of a spherical sliding surface, a slider coated with PTFE-type composite material, and a housing plate. [fig:fp_components] and [fig:fp_sectionalview] shows components and part sectional view of a single concave Friction Pendulum<sup>TM</sup> bearing, respectively.

Expand Down Expand Up @@ -43,11 +43,11 @@ K=\frac{N}{r_{eff}}
\end{aligned}
\end{equation}

where,<br/>
$Q$ is the yield strength <br/>
$K$ is the post elastic stiffness <br/>
$N$ is the instantaneous axial load <br/>
$r_{eff}$ is the effective radius of curvature of the sliding surface<br/>
where, \\
$Q$ is the yield strength \\
$K$ is the post elastic stiffness \\
$N$ is the instantaneous axial load, and \\
$r_{eff}$ is the effective radius of curvature of the sliding surface.

Parameters $Q$ and $K$ depends on the coefficient of sliding friction and the axial load on the bearing. For detailed information on the numerical implementation of the nonlinear hysteretic behavior of the FP bearing in shear, refer to [citet:manishkumarmceer2015a] (page:106-107). Additionally, the FP bearing exhibits very large stiffness in axial, torsional and rotational directions and is therefore modeled as a linear elastic material with large stiffness in these degrees-of-freedom.

Expand All @@ -62,11 +62,11 @@ The lateral force-displacement relationship of the FP bearing is governed by the
\end{aligned}
\end{equation}

where,<br>
$\mu(t)$ is the coefficient of sliding friction at given time $t$<br/>
$v$ is the instantaneous sliding velocity<br/>
$p$ is the instantaneous axial pressure <br/>
$T$ is the instantaneous temperature of the sliding surface<br/>
where, \\
$\mu(t)$ is the coefficient of sliding friction at given time $t$\\
$v$ is the instantaneous sliding velocity\\
$p$ is the instantaneous axial pressure, and \\
$T$ is the instantaneous temperature of the sliding surface.

[citet:manishkumarmceer2015b] developed a framework to account for the variation in $\mu$ due to the combined effect of velocity, pressure, and temperature and it is adopted here. The sliding velocity and the axial pressure on the bearing are governed by the response of the superstructure. The temperature at the sliding surface is a function of the coefficient of friction, sliding velocity, instantaneous axial pressure and, thermal and heat flux parameters of the material (typically stainless steel):

Expand All @@ -77,9 +77,9 @@ T(t)=f(\mu,v,p,D,k)
\end{aligned}
\end{equation}

where, <br/>
k is the thermal conductivity of the sliding interface material <br/>
D is the thermal diffusivity of the sliding interface material <br/>
where, \\
k is the thermal conductivity of the sliding interface material, and \\
D is the thermal diffusivity of the sliding interface material.

It is evident from [fp_eqn3] and [fp_eqn4], that $T$ and $\mu$ are interdependent. This complex interdependence of the coefficient of sliding friction, sliding velocity, instantaneous axial pressure, and the temperature at the sliding surface is described using the flowchart of [fig:fp_interdependence].

Expand All @@ -99,10 +99,10 @@ It is evident from [fp_eqn3] and [fp_eqn4], that $T$ and $\mu$ are interdependen
\end{aligned}
\end{equation}

where,<br/>
$\mu_{min}$ is the friction coefficient at a very small sliding velocity<br/>
$\mu_{max}$ is the friction coefficient at a very high sliding velocity <br/>
$a$ is a rate parameter<br/>
where,\\
$\mu_{min}$ is the friction coefficient at a very small sliding velocity\\
$\mu_{max}$ is the friction coefficient at a very high sliding velocity, and \\
$a$ is a rate parameter.

Based on the experimental data, the ratio $\frac{\mu_{min}}{\mu_{max}}$ is assumed to be a constant value of 0.5 [citep:manishkumarmceer2015b]. The modified expression for coefficient of friction as a function of instantaneous sliding velocity, at constant axial load and temperature, can be written as:

Expand All @@ -124,10 +124,10 @@ Based on the experimental data, the ratio $\frac{\mu_{min}}{\mu_{max}}$ is assum
\end{aligned}
\end{equation}

where,<br/>
$p_o$ is the reference axial pressure <br/>
$\mu_{p=p_o}$ is the co-efficent of sliding friction when the axial pressure on the bearing ($p$) is equal to the reference pressure ($p_o$)<br/>
$\alpha$ and $\beta$ are constants<br/>
where,\\
$p_o$ is the reference axial pressure \\
$\mu_{p=p_o}$ is the co-efficent of sliding friction when the axial pressure on the bearing ($p$) is equal to the reference pressure ($p_o$), and \\
$\alpha$ and $\beta$ are constants.

The assumption of $\mu_{min} =0.5 \mu_{max}$ for all values of axial pressure allows the coefficient of sliding friction to be expressed as the product of the coefficient of friction measured at a reference pressure and a term that depends on the instantaneous axial pressure. Based on the experiments, $\alpha$ and $\beta$ can be set equal to 0.7 and 0.02 respectively [citep:manishkumarmceer2015b]. Rewriting the expression for $\mu$ as a function of $p$:

Expand All @@ -149,10 +149,10 @@ The coefficient of sliding friction decreases as the number of cycles of loading
\end{aligned}
\end{equation}

where,<br/>
$\mu(T)$ is the coefficient of friction at a temperature $T$<br/>
$\mu_{T=T_o}$ is the coefficient of friction measured at the reference temperature $T_o$<br/>
$T$ is the instantaneous temperature<br/>
where,\\
$\mu(T)$ is the coefficient of friction at a temperature $T$\\
$\mu_{T=T_o}$ is the coefficient of friction measured at the reference temperature $T_o$, and \\
$T$ is the instantaneous temperature.

During the analysis, it is difficult to monitor the temperature over the entire sliding surface. To address the heating, [citet:manishkumarmceer2015b] proposed an alternate approach namely, to monitor the temperature at the center of sliding surface only. When the slider is above the center of sliding surface, the temperature increases, and drops as the slider moves away. This increase in temperature at the monitoring location is governed by the heat flux parameters and the path of the slider, and is given by [fp_eqn10]

Expand All @@ -163,12 +163,12 @@ During the analysis, it is difficult to monitor the temperature over the entire
\end{aligned}
\end{equation}

where,<br/>
$\Delta{T}(x,t)$ is the increase in temperature<br/>
$x$ is the depth measured from the sliding surface,<br/>
$D$ is the thermal diffusivity of the sliding interface material,<br/>
$k$ is the thermal conductivity of the sliding interface material, <br/>
$q$ is the heat flux
where,\\
$\Delta{T}(x,t)$ is the increase in temperature\\
$x$ is the depth measured from the sliding surface,\\
$D$ is the thermal diffusivity of the sliding interface material,\\
$k$ is the thermal conductivity of the sliding interface material, and \\
$q$ is the heat flux.

At a given instant of time, the instantaneous heat flux, at the monitoring location can be expressed as

Expand Down Expand Up @@ -213,8 +213,8 @@ The coefficient of sliding friction as a function of the instantaneous sliding v
\end{aligned}
\end{equation}

where,<br/>
$k_v$ is the factor accounting for friction dependence on the sliding velocity<br/>
$k_p$ is the factor accounting for friction dependence on the axial pressure on the bearing<br/>
$k_T$ is the factor accounting for friction dependence on the temperature at center of the sliding surface<br/>
where,\\
$k_v$ is the factor accounting for friction dependence on the sliding velocity\\
$k_p$ is the factor accounting for friction dependence on the axial pressure on the bearing\\
$k_T$ is the factor accounting for friction dependence on the temperature at center of the sliding surface, and \\
$\mu_{ref}$ is the coefficient of sliding friction at refernce pressure $p_o$, measured at high velocity of sliding with the temperature at the center of the sliding surface being $T_o$.
11 changes: 5 additions & 6 deletions doc/content/sqa/requirements_traceability_matrix.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
!SQA-load requirements_traceability_matrix.md
!template load file=system_requirements_traceability_matrix.template.md
project=MASTODON

!SQA-template-item requirements_matrix

!SQA-requirement-matrix sqa/system_requirement_specification.md

!END-template-item
!template! item key=requirements-traceability-matrix
!sqa requirements
!template-end!
16 changes: 11 additions & 5 deletions doc/content/sqa/validation/V1-01.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ the block is also fixed in the y direction and a sawtooth acceleration is applie
The prescribed acceleration is integrated in time using Newmark time integration.
For $\beta = 0.25$ and $\gamma = 0.5$ and timestep of 1.0 sec., the displacement and velocity
are as given in [newmark-disp-vel-accel]. The interactive results shown in
[newmark-diffchart] compare the analytical result ("previous") with the result computed
[verification_figure] compare the analytical result ("previous") with the result computed
from MASTODON for this problem ("current").

!table id=newmark-disp-vel-accel caption=Analytical displacement, acceleration, and velocity in the x-direction.
Expand All @@ -19,10 +19,16 @@ from MASTODON for this problem ("current").
| 2 | 1 | 1 | 0 |
| 3 | 1.75 | 0.5 | -1 |

!listing id=newmark-diffchart
```
!chart diffscatter id=newmark-diffchart caption=Difference between the analytical ("previous") solution and the values computed using MASTODON. columns=time,accel_x,disp_x,vel_x csv=test/tests/kernels/time_integration/newmark_out.csv haxis_title=Eruption No. vaxis_title=Time (sec.) haxis_ticks=[0,1,2,3]
```
!plot scatter filename=test/tests/kernels/time_integration/gold/newmark_out.csv
data=[{'x':'time', 'y':'accel_x', 'name':'Acceleration'},
{'x':'time', 'y':'disp_x', 'name':'Displacement'},
{'x':'time', 'y':'vel_x', 'name':'Velocity'}]
layout={'xaxis':{'title':'Time (sec)'},
'yaxis':{'title':'Acceleration (g)'},
'title':'Acceleration history'}
caption=Acceleration, velocity and displacement values computed using NewmarkBeta integration in MASTODON
id=verification_figure

## Complete Input File

!listing test/tests/kernels/time_integration/newmark.i
Expand Down
16 changes: 11 additions & 5 deletions doc/content/sqa/validation/V1-02.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ corresponds to the top node is $E\cdot A\cdot l \cdot [1\,-1]$, where $E$ is You

Solving the above equation analytically for $\alpha = -0.3$, $\beta = 0.4225$, and
$\gamma = 0.8$ gives the results in [hht-disp-vel-accel]. The interactive results shown in
[hht-diffchart] compare the analytical result ("previous") with the result computed
[verification_figure] compare the analytical result ("previous") with the result computed
from MASTODON for this problem ("current").

!table id=hht-disp-vel-accel caption=Analytical displacement, acceleration, and velocity in the x-direction.
Expand All @@ -30,10 +30,16 @@ from MASTODON for this problem ("current").
| 2 | 0.871| 0.785 | 0.241 |
| 3 | 1.467 | 0.439 | -0.493 |

!listing id=hht-diffchart caption=Diffcharts have been temporarily disabled.
```
!chart diffscatter id=hht-diffchart caption=Difference between the analytical ("previous") solution and the values computed using MASTODON for HHT time integration. columns=time,accel_x,disp_x,vel_x csv=test/tests/kernels/time_integration/hht_out.csv haxis_title=Eruption No. vaxis_title=Time (sec.) haxis_ticks=[0,1,2,3]
```
!plot scatter filename=test/tests/kernels/time_integration/gold/hht_out.csv
data=[{'x':'time', 'y':'accel_x', 'name':'Acceleration'},
{'x':'time', 'y':'disp_x', 'name':'Displacement'},
{'x':'time', 'y':'vel_x', 'name':'Velocity'}]
layout={'xaxis':{'title':'Time (sec)'},
'yaxis':{'title':'Acceleration (g)'},
'title':'Acceleration history'}
caption=Acceleration, velocity and displacement values computed using HHT integration in MASTODON
id=verification_figure


## Complete Input File

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Verification and Validation Results Report

!SQA-validation-list Time Integration require-markdown=True status=True
V1.01 Newmark Time Integration
V1.02 Hilber-Hughes-Taylor Time Integration
!sqa verification
10 changes: 10 additions & 0 deletions test/tests/auxkernels/uniform_layer/tests
Original file line number Diff line number Diff line change
@@ -1,45 +1,55 @@
[Tests]
issues = '#2'
design = 'UniformLayerAuxKernel.md'
[./1d]
type = Exodiff
input = uniform_layer_1d.i
exodiff = uniform_layer_1d_out.e
requirement = 'Mastodon shall create uniform layers of material for a one dimensional model'
[../]
[./2d]
type = Exodiff
input = uniform_layer_2d.i
exodiff = uniform_layer_2d_out.e
requirement = 'Mastodon shall create uniform layers of material for a two dimensional model'
[../]
[./3d]
type = Exodiff
input = uniform_layer_3d.i
exodiff = uniform_layer_3d_out.e
requirement = 'Mastodon shall create uniform layers of material for a three dimensional model'
[../]
[./3d_default_layers]
type = Exodiff
input = uniform_layer_3d_default_layers.i
exodiff = uniform_layer_3d_default_layers_out.e
requirement = 'Mastodon shall create uniform layers of material for a three dimensional model and automatically name each layer using the default indexing scheme'
[../]
[./2d_nodal]
type = Exodiff
input = uniform_layer_2d_nodal.i
exodiff = uniform_layer_2d_nodal_out.e
requirement = 'Mastodon shall create uniform layers of material for a two dimensional model - Amdrew, finish this one up. I dont know what is different between this and the other 2D model'
[../]
[./error_bad_direction]
type = RunException
input = uniform_layer_1d.i
cli_args = "AuxKernels/layers/direction='0 0 0'"
expect_err = "The supplied direction vector is not valid, it has a zero norm\."
requirement = 'Mastodon shall produce an error message if the supplied direction vetor is not valid for the corresponding mesh'
[../]
[./error_vector_mismatch]
type = RunException
input = uniform_layer_1d.i
cli_args = "AuxKernels/layers/layer_ids='1 2 3 4 5 6 7'"
expect_err = "The number of 'interfaces' must match the number of 'layer\_ids'\."
requirement = 'Mastodon shall produce an error if the number of interfaces supplied does not match the number of layer ids supplied'
[../]
[./error_bad_interfaces]
type = RunException
input = uniform_layer_1d.i
cli_args = "AuxKernels/layers/interfaces='-100 -10' AuxKernels/layers/layer_ids='1 2'"
expect_err = "Failed to locate an interface within the domain\."
requirement = 'Mastodon shall produce an error if an interface value is supplied that is not contained within the model domain'
[../]
[]
12 changes: 12 additions & 0 deletions test/tests/bcs/nonreflecting_bc/tests
Original file line number Diff line number Diff line change
@@ -1,34 +1,46 @@
[tests]
design = "NonReflectingBC.md"
issues = "#12"
[./non_reflecting_bc]
type = 'Exodiff'
input = 'non_reflecting_bc_test.i'
exodiff = 'non_reflecting_bc_test_out.e'
compiler = 'GCC CLANG'
max_parallel = 1
skip = "regold after moose PR"

requirement = "The NonReflectingBC class shall accurately model absorption of shear and compressive waves that are incident on the boundary."
[../]
[./displacements_error]
type = RunException
input = 'non_reflecting_bc_error.i'
cli_args = "BCs/test/displacements=disp_x"
expect_err = "The number of variables listed in the \'displacements\' parameter in \"test\" block must match the mesh dimension."

requirement = "The NonReflectingBC class shall produce an error if the number of the displacement variables is not the same as the mesh dimension."
[../]
[./velocities_error]
type = RunException
input = 'non_reflecting_bc_error.i'
cli_args = "BCs/test/velocities=disp_x"
expect_err = "The number of variables listed in the \'velocities\' parameter in \"test\" block must match the mesh dimension."

requirement = "The NonReflectingBC class shall produce an error if the number of velocity variables is not the same as the mesh dimension."
[../]
[./accelerations_error]
type = RunException
input = 'non_reflecting_bc_error.i'
cli_args = "BCs/test/accelerations=disp_x"
expect_err = "The number of variables listed in the \'accelerations\' parameter in \"test\" block must match the mesh dimension."

requirement = "The NonReflectingBC class shall produce an error if the number of acceleration variables is not the same as the mesh dimension."
[../]
[./component_error]
type = RunException
input = 'non_reflecting_bc_error.i'
cli_args = "BCs/test/component=1980"
expect_err = "The \'component\' parameter in \"test\" block should be less than mesh dimension."

requirement = "The NonReflectingBC class shall produce an error if the size of the component vector is not the same as the mesh dimension."
[../]
[]
6 changes: 6 additions & 0 deletions test/tests/bcs/seismic_displacement/tests
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
[Tests]
design = "BCs/SeismicDisplacement/index.md"
issues = "#28"
[./seismic_displacment]
type = Exodiff
input = seismic_displacement.i
exodiff = seismic_displacement_out.e

requirement = "The SeismicDisplacement action shall prescribe the user-provided displacement at the boundary."
[../]
[./action_wrong_size_error]
type = RunException
input = seismic_displacement_error.i
cli_args = "BCs/SeismicDisplacement/top_x/displacements=disp_x"
expect_err = "In the \"top_x\" block the 'displacements', 'velocities', 'accelerations', 'input_functions', and 'input_components' should be of the same size."

requirement = "The SeismicDisplacement action shall produce an error if the displacements, velocities, accelerations, input functions and input components are not of the same length."
[../]
[]
Loading

0 comments on commit 3aab2c6

Please sign in to comment.