Alamo
Laplacian.H
Go to the documentation of this file.
1#ifndef MODEL_SOLID_LINEAR_LAPLACIAN_H_
2#define MODEL_SOLID_LINEAR_LAPLACIAN_H_
3
4#include <AMReX.H>
5#include <AMReX_REAL.H>
6#include <eigen3/Eigen/Core>
7
8#include "Model/Solid/Solid.H"
9#include "IO/ParmParse.H"
10#include "Util/Util.H"
11#include "Set/Set.H"
12
13namespace Model
14{
15namespace Solid
16{
17namespace Linear
18{
19///
20/// Isotropic implements the following elastic model
21/// \f[ \mathbb{C}_{ijkl} = \alpha\delta_{ik}\delta_{jl} \f]
22/// corresponding to the elastic model
23/// \f[ \sigma_{ij} = \alpha\delta_{ik}\delta_{jl}u_{k,l} = \alpha u_{i,j} \f]
24/// \f[ f_{i} = \mathbb{C}_{ijkl}u_{k,jl} = \alpha\delta_{ik}\delta_{jl}u_{k,jl} = \alpha u_{i,jj} \f]
25///
26class Laplacian : public Model::Solid::Solid<Set::Sym::Diagonal>
27{
28public:
34 {
35 return ( 0.5 * gradu.transpose() * (ddw*gradu) ).trace();
36 }
38 {
39 return ddw*gradu;
40 }
42 {
43 return ddw;
44 }
45public:
46 static Laplacian Zero()
47 {
48 Laplacian ret;
50 return ret;
51 }
52 static void Parse(Laplacian &value,IO::ParmParse &pp)
53 {
54 Set::Scalar alpha = NAN;
55 // Coefficient for the Laplacian
56 pp_query_default("alpha",alpha,1.0);
57 value.Define(alpha);
58 }
59
63 {
64 Laplacian ret;
65 ret.ddw.Randomize();
66 return ret;
67 }
68
69#define OP_CLASS Laplacian
70#define OP_VARS X(ddw)
72};
74
75}
76}
77}
78#endif
#define pp_query_default(...)
Definition ParmParse.H:102
Isotropic implements the following elastic model.
Definition Laplacian.H:27
Set::Scalar W(const Set::Matrix &gradu) const
Definition Laplacian.H:33
Set::Matrix4< AMREX_SPACEDIM, Set::Sym::Diagonal > DDW(const Set::Matrix &) const
Definition Laplacian.H:41
Set::Matrix4< AMREX_SPACEDIM, Set::Sym::Diagonal > ddw
Definition Laplacian.H:60
static Laplacian Random()
Definition Laplacian.H:62
void Define(Set::Scalar alpha=1.0)
Definition Laplacian.H:29
static void Parse(Laplacian &value, IO::ParmParse &pp)
Definition Laplacian.H:52
static const KinematicVariable kinvar
Definition Laplacian.H:61
Set::Matrix DW(const Set::Matrix &gradu) const
Definition Laplacian.H:37
static Laplacian Zero()
Definition Laplacian.H:46
KinematicVariable
Definition Solid.H:34
amrex::Real Scalar
Definition Base.H:18
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, 1 > Vector
Definition Base.H:19
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, AMREX_SPACEDIM > Matrix
Definition Base.H:22