https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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{
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
44mfem::BilinearFormIntegrator *
46{
47 return new mfem::ElasticityIntegrator(_lambda, _mu);
48}
49
50#endif
registerMooseObject("MooseApp", MFEMLinearElasticityKernel)
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
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.
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.
Class to construct an MFEM integrator to apply to the equation system.
Definition MFEMKernel.h:22
static InputParameters validParams()
Definition MFEMKernel.C:19
virtual mfem::BilinearFormIntegrator * createBFIntegrator() override
Create MFEM integrator to apply to the LHS of the weak form. Ownership managed by the caller.
MFEMLinearElasticityKernel(const InputParameters &parameters)
static InputParameters validParams()