https://mooseframework.inl.gov
MFEMLinearElasticityKernel.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #ifdef MOOSE_MFEM_ENABLED
11 
13 #include "MFEMProblem.h"
14 
16 
19 {
21  params.addClassDescription(
22  "The isotropic linear elasticity operator with weak form "
23  "$(c_{ikjl} \\nabla u_j, \\nabla v_i)$, to be added to an MFEM problem, where "
24  "$c_{ikjl}$ is the isotropic elasticity tensor, "
25  "$c_{ikjl} = \\lambda \\delta_{ik} \\delta_{jl} + \\mu \\left( \\delta_{ij} \\delta_{kl} + "
26  "\\delta_{il} \\delta_{jk} \\right)$, "
27  "$\\lambda$ is the first Lame parameter, $\\lambda = \\frac{E\\nu}{(1-2\\nu)(1+\\nu)}$, "
28  "$\\mu$ is the second Lame parameter, $\\mu = \\frac{E}{2(1+\\nu)}$, "
29  "where $E$ is Young's modulus and $\\nu$ is Poisson's ratio.");
30 
31  params.addParam<MFEMScalarCoefficientName>(
32  "lambda", "1.", "Name of MFEM Lame constant lambda to multiply the div(u)*I term by");
33  params.addParam<MFEMScalarCoefficientName>(
34  "mu", "1.", "Name of MFEM Lame constant mu to multiply the gradients term by");
35 
36  return params;
37 }
38 
40  : MFEMKernel(parameters), _lambda(getScalarCoefficient("lambda")), _mu(getScalarCoefficient("mu"))
41 {
42 }
43 
44 mfem::BilinearFormIntegrator *
46 {
47  return new mfem::ElasticityIntegrator(_lambda, _mu);
48 }
49 
50 #endif
static InputParameters validParams()
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
E is Young&#39;s modulus, is Poisson&#39;s ratio
registerMooseObject("MooseApp", MFEMLinearElasticityKernel)
MFEMLinearElasticityKernel(const InputParameters &parameters)
void addClassDescription(const std::string &doc_string)
This method adds a description of the class that will be displayed in the input file syntax dump...
void addParam(const std::string &name, const S &value, const std::string &doc_string)
These methods add an optional parameter and a documentation string to the InputParameters object...
virtual mfem::BilinearFormIntegrator * createBFIntegrator() override
Create MFEM integrator to apply to the LHS of the weak form. Ownership managed by the caller...
Class to construct an MFEM integrator to apply to the equation system.
Definition: MFEMKernel.h:21
static InputParameters validParams()
Definition: MFEMKernel.C:19