-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'aurora-multiphysics:main' into sr_kc/non-linear-diffusion
- Loading branch information
Showing
136 changed files
with
87,157 additions
and
801 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -34,9 +34,9 @@ jobs: | |
uses: super-linter/super-linter/[email protected] | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
# External doxygen style files and MOOSE Doxygen header do not meet Platypus | ||
# linting requirements; exclude them from lint checks: | ||
FILTER_REGEX_EXCLUDE: ((^|/)doxygen-awesome|moose_doxy_header.html|doxygen.css|tabs.css) | ||
# External doxygen style files, the MOOSE Doxygen header, and the CodeCov upload script | ||
# do not meet Platypus linting requirements; exclude them from lint checks: | ||
FILTER_REGEX_EXCLUDE: ((^|/)doxygen-awesome|moose_doxy_header.html|doxygen.css|tabs.css|codecov.sh) | ||
VALIDATE_ANSIBLE: false | ||
VALIDATE_CHECKOV: false | ||
VALIDATE_CPP: false | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
# Grad-div Problem | ||
|
||
## Summary | ||
|
||
Solves a diffusion problem for a vector field on a cuboid domain, discretized | ||
using $H(\mathrm{div})$ conforming Raviart-Thomas elements. This example is | ||
based on [MFEM Example 4](https://mfem.org/examples/) and is relevant for | ||
solving Maxwell's equations using potentials without the Coulomb gauge. | ||
|
||
|
||
## Description | ||
|
||
This problem solves a grad-div equation with strong form: | ||
|
||
\begin{equation} | ||
\begin{split} | ||
\vec\nabla \left( \alpha \vec\nabla \cdot \vec F \right) + \beta \vec F = \vec f \,\,\,&\mathrm{on}\,\, \Omega \\ | ||
\vec F \cdot \hat n= \vec g \,\,\, &\mathrm{on}\,\, \partial\Omega | ||
\end{split} | ||
\end{equation} | ||
|
||
where | ||
|
||
\begin{equation} | ||
\vec g = \begin{pmatrix} | ||
\cos(k x)\sin(k y)\\ | ||
\cos(k y)\sin(k x)\\ | ||
0 | ||
\end{pmatrix},\,\,\, | ||
\vec f = \left( \beta + 2 \alpha k^2 \right) \vec g | ||
\end{equation} | ||
|
||
In this example, we solve this using the weak form | ||
|
||
!equation | ||
(\alpha \vec\nabla \cdot \vec F , \vec\nabla \cdot \vec v)_\Omega + (\beta \vec F, \vec F)_\Omega | ||
= (\vec f, \vec v)_\Omega \,\,\, \forall \vec v \in V | ||
|
||
where | ||
|
||
\begin{equation} | ||
\begin{split} | ||
\vec F \in H(\mathrm{div})(\Omega) &: \vec F \cdot \hat n= \vec g \,\,\, \mathrm{on}\,\, \partial\Omega \\ | ||
\vec v \in H(\mathrm{div})(\Omega) &: \vec v \cdot \hat n= \vec 0 \,\,\, \mathrm{on}\,\, \partial\Omega | ||
\end{split} | ||
\end{equation} | ||
|
||
## Example File | ||
|
||
!listing kernels/graddiv.i |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
# Linear Elasticity Problem | ||
|
||
## Summary | ||
|
||
Solves a 3D linear elasticity problem for | ||
the deformation of a mult-material cantiliver beam. This example | ||
is based on [MFEM Example 2](https://mfem.org/examples/). | ||
|
||
|
||
## Description | ||
|
||
This problem solves a linear elasticity problem for small deformations with strong form: | ||
|
||
\begin{equation} | ||
\begin{split} | ||
-\partial_j \sigma_{ij} =0 | ||
\,\,\,&\mathrm{on}\,\, \Omega \\ | ||
u_i = 0 \,\,\, &\mathrm{on}\,\, \Gamma_1 \\ | ||
\sigma_{ij} \hat n_j= f_i \,\,\, &\mathrm{on}\,\, \Gamma_2 | ||
\end{split} | ||
\end{equation} | ||
|
||
where Einstein notation for summation over repeated indices has been used, and the pull-down force | ||
$\vec f = f_i \hat e_i$ is given by | ||
|
||
\begin{equation} | ||
\vec f = \begin{pmatrix} | ||
0.0\\ | ||
0.0\\ | ||
-0.01 | ||
\end{pmatrix} | ||
\end{equation} | ||
|
||
In this example, | ||
the stress/strain relation is taken to be isotropic, such that | ||
|
||
\begin{equation} | ||
\begin{split} | ||
\sigma_{ij} \equiv C_{ijkl} \varepsilon_{kl} = \lambda \delta_{ij} \varepsilon_{kk} + 2 \mu \varepsilon_{ij} \\ | ||
\varepsilon_{ij} = \frac{1}{2} \left(\partial_i u_j + \partial_j u_i\right) | ||
\end{split} | ||
\end{equation} | ||
|
||
In this example, we solve this using the weak form | ||
|
||
\begin{equation} | ||
(\sigma_{ij}, \partial_j v_i)_\Omega - (\sigma_{ij} \hat n_j, v_i)_{\partial \Omega} | ||
= 0 \,\,\,\, \forall v_i \in V | ||
\end{equation} | ||
|
||
where | ||
|
||
\begin{equation} | ||
v_i \in H^1(\Omega) : v_i = 0 \,\,\, \mathrm{on} \,\, \Gamma_1 | ||
\end{equation} | ||
|
||
## Material Parameters | ||
|
||
In this example, the cantilever beam is comprised of two materials; a stiffer material on the block | ||
with domain attribute 1, and a more flexible material defined on the block with domain attribute 2. | ||
These materials are parametrised with different values for the Lamé parameters, $\lambda$ and | ||
$\mu$, on the two domains. | ||
|
||
The two Lamé parameters can be expressed in terms of the Young's modulus $E$ and the Poisson ratio $\nu$ in each material, using | ||
|
||
\begin{equation} | ||
\begin{split} | ||
\lambda &= \frac{E\nu}{(1-2\nu)(1+\nu)} \\ | ||
\mu &= \frac{E}{2(1+\nu)} | ||
\end{split} | ||
\end{equation} | ||
|
||
## Example File | ||
|
||
!listing kernels/linearelasticity.i |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# SetMeshFESpaceAction | ||
|
||
## Summary | ||
|
||
Sets the nodal mesh FESpace to use the same FESpace as the | ||
[`MFEMVariable`](source/variables/MFEMVariable.md) used to describe node displacements. | ||
|
||
## Overview | ||
|
||
Action called to set the nodal mesh FESpace to use the same FESpace as the variable used to describe | ||
node displacements in problems involving deformed meshes, parsing content inside the `Mesh` block in | ||
the user input. Only has an effect if the `Problem` type is set to | ||
[`MFEMProblem`](source/problem/MFEMProblem.md), the `Mesh` type is set to [`MFEMMesh`](source/mesh/MFEMMesh.md) | ||
and the `displacement` field is set. | ||
|
||
## Example Input File Syntax | ||
|
||
!listing test/tests/kernels/linearelasticity.i block=Mesh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# MFEMScalarBoundaryIntegratedBC | ||
|
||
## Summary | ||
|
||
!syntax description /BCs/MFEMScalarBoundaryIntegratedBC | ||
|
||
## Overview | ||
|
||
Adds the boundary integrator for integrating the linear form | ||
|
||
!equation | ||
(f, v)_{\partial\Omega} \,\,\, \forall v \in V | ||
|
||
where the test variable $v \in H^1$ and $f$ is a scalar coefficient. Often used for representing | ||
Neumann-type boundary conditions. | ||
|
||
!syntax parameters /BCs/MFEMScalarBoundaryIntegratedBC | ||
|
||
!syntax inputs /BCs/MFEMScalarBoundaryIntegratedBC | ||
|
||
!syntax children /BCs/MFEMScalarBoundaryIntegratedBC |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# MFEMScalarFunctionDirichletBC | ||
|
||
## Summary | ||
|
||
!syntax description /BCs/MFEMScalarFunctionDirichletBC | ||
|
||
## Overview | ||
|
||
Boundary condition for enforcing an essential (Dirichlet) condition on | ||
a scalar variable on the boundary, fixing its values to the input | ||
scalar function on the boundary. | ||
|
||
## Example Input File Syntax | ||
|
||
!syntax parameters /BCs/MFEMScalarFunctionDirichletBC | ||
|
||
!syntax inputs /BCs/MFEMScalarFunctionDirichletBC | ||
|
||
!syntax children /BCs/MFEMScalarFunctionDirichletBC |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
# MFEMVectorBoundaryIntegratedBC | ||
|
||
## Summary | ||
|
||
!syntax description /BCs/MFEMVectorBoundaryIntegratedBC | ||
|
||
## Overview | ||
|
||
Adds the boundary integrator for integrating the linear form | ||
|
||
!equation | ||
(\vec f, \vec v)_{\partial\Omega} \,\,\, \forall \vec v \in V | ||
|
||
where $\vec v \in \vec H^1$ and $\vec f$ is a constant vector of the same dimension. | ||
|
||
## Example Input File Syntax | ||
|
||
!listing test/tests/kernels/linearelasticity.i block=BCs | ||
|
||
!syntax parameters /BCs/MFEMVectorBoundaryIntegratedBC | ||
|
||
!syntax inputs /BCs/MFEMVectorBoundaryIntegratedBC | ||
|
||
!syntax children /BCs/MFEMVectorBoundaryIntegratedBC |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# MFEMVectorDirichletBCBase | ||
|
||
## Summary | ||
|
||
Base class for objects applying essential boundary conditions on vector variables in an MFEM FE problem. | ||
|
||
## Overview | ||
|
||
Classes deriving from `MFEMVectorDirichletBCBase` are used for the application of Dirichlet-like BCs that | ||
remove degrees of freedom from vector variables in the problem on the specified boundary. These are commonly used when | ||
strongly constraining the values a solution may take on boundaries. The imposed values are uniform in space and constant | ||
in time. |
22 changes: 22 additions & 0 deletions
22
doc/content/source/bcs/MFEMVectorFunctionBoundaryIntegratedBC.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# MFEMVectorFunctionBoundaryIntegratedBC | ||
|
||
## Summary | ||
|
||
!syntax description /BCs/MFEMVectorFunctionBoundaryIntegratedBC | ||
|
||
## Overview | ||
|
||
Adds the boundary integrator for integrating the linear form | ||
|
||
!equation | ||
(\vec f, \vec v)_{\partial\Omega} \,\,\, \forall \vec v \in V | ||
|
||
where $v \in \vec H^1$ and $\vec f$ is a vector function of the same dimension. | ||
|
||
## Example Input File Syntax | ||
|
||
!syntax parameters /BCs/MFEMVectorFunctionBoundaryIntegratedBC | ||
|
||
!syntax inputs /BCs/MFEMVectorFunctionBoundaryIntegratedBC | ||
|
||
!syntax children /BCs/MFEMVectorFunctionBoundaryIntegratedBC |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# MFEMVectorFunctionDirichletBC | ||
|
||
## Summary | ||
|
||
!syntax description /BCs/MFEMVectorFunctionDirichletBC | ||
|
||
## Overview | ||
|
||
Boundary condition for enforcing an essential (Dirichlet) boundary condition on all components of a | ||
vector $H^1$ conforming variable on the boundary. The boundary value is a function of space and/or time. | ||
|
||
## Example Input File Syntax | ||
|
||
!listing test/tests/kernels/linearelasticity.i block=BCs | ||
|
||
!syntax parameters /BCs/MFEMVectorFunctionDirichletBC | ||
|
||
!syntax inputs /BCs/MFEMVectorFunctionDirichletBC | ||
|
||
!syntax children /BCs/MFEMVectorFunctionDirichletBC |
11 changes: 11 additions & 0 deletions
11
doc/content/source/bcs/MFEMVectorFunctionDirichletBCBase.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# MFEMVectorFunctionDirichletBCBase | ||
|
||
## Summary | ||
|
||
Base class for objects applying essential boundary conditions on vector variables in an MFEM FE problem. | ||
|
||
## Overview | ||
|
||
Classes deriving from `MFEMVectorFunctionDirichletBCBase` are used for the application of Dirichlet-like BCs that | ||
remove degrees of freedom from vector variables in the problem on the specified boundary. These are commonly used when | ||
strongly constraining the values a solution may take on boundaries. The imposed values may vary in space and/or time. |
21 changes: 21 additions & 0 deletions
21
doc/content/source/bcs/MFEMVectorFunctionNormalDirichletBC.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# MFEMVectorFunctionNormalDirichletBC | ||
|
||
## Summary | ||
|
||
!syntax description /BCs/MFEMVectorFunctionNormalDirichletBC | ||
|
||
## Overview | ||
|
||
Boundary condition for enforcing an essential (Dirichlet) boundary condition on the normal | ||
components of a $H(\mathrm{div})$ conforming vector FE at a boundary. The imposed value is | ||
a function of space and/or time. | ||
|
||
## Example Input File Syntax | ||
|
||
!listing test/tests/kernels/graddiv.i block=BCs | ||
|
||
!syntax parameters /BCs/MFEMVectorFunctionNormalDirichletBC | ||
|
||
!syntax inputs /BCs/MFEMVectorFunctionNormalDirichletBC | ||
|
||
!syntax children /BCs/MFEMVectorFunctionNormalDirichletBC |
Oops, something went wrong.