20void ElasticityIntegrator::SetUpQuadratureSpaceAndCoefficients(
 
   21   const FiniteElementSpace &fes)
 
   26      const auto &T = *fes.GetMesh()->GetTypicalElementTransformation();
 
   27      int quad_order = 2 * T.OrderGrad(fes.GetTypicalFE());
 
   31   Mesh &mesh = *fespace->
GetMesh();
 
   33   q_space.reset(
new QuadratureSpace(mesh, *
IntRule));
 
   34   lambda_quad.reset(
new CoefficientVector(
lambda, *q_space,
 
   37   q_vec.reset(
new QuadratureFunction(*q_space, vdim*vdim));
 
   43               "Elasticity PA only implemented for byNODES ordering.");
 
   51   SetUpQuadratureSpaceAndCoefficients(fes);
 
 
   62   q_vec->SetVDim(vdim*vdim*vdim*vdim);
 
   63   internal::ElasticityAssembleDiagonalPA(vdim, ndofs, *lambda_quad, *mu_quad,
 
   64                                          *geom, *maps, *q_vec, diag);
 
 
   69   internal::ElasticityAddMultPA(vdim, ndofs, *fespace, *lambda_quad, *mu_quad,
 
   70                                 *geom, *maps, x, *q_vec, y);
 
 
   86      parent.SetUpQuadratureSpaceAndCoefficients(fes);
 
 
  103   internal::ElasticityComponentAddMultPA(
 
  104      parent.vdim, parent.ndofs, *fespace, *parent.lambda_quad, *parent.mu_quad,
 
  105      *geom, *maps, x, *parent.q_vec, y, i_block, j_block);
 
 
  113   internal::ElasticityComponentAddMultPA(
 
  114      parent.vdim, parent.ndofs, *fespace, *parent.lambda_quad, *parent.mu_quad,
 
  115      *geom, *maps, x, *parent.q_vec, y, j_block, i_block);
 
 
Header for small strain, isotropic, linear elasticity kernels.
@ FULL
Full multidimensional representation which does not use tensor product structure. The ordering of the...
@ LEXICOGRAPHIC_FULL
Full multidimensional representation which does not use tensor product structure. The ordering of the...
void AssemblePA(const FiniteElementSpace &fes) override
Method defining partial assembly.
void AddMultTransposePA(const Vector &x, Vector &y) const override
Method for partially assembled transposed action.
void AddMultPA(const Vector &x, Vector &y) const override
Method for partially assembled action.
void AddMultTransposePA(const Vector &x, Vector &y) const override
Method for partially assembled transposed action.
void AddMultPA(const Vector &x, Vector &y) const override
Method for partially assembled action.
void AssemblePA(const FiniteElementSpace &fes) override
Method defining partial assembly.
void AssembleDiagonalPA(Vector &diag) override
Assemble diagonal and add it to Vector diag.
Class FiniteElementSpace - responsible for providing FEM view of the mesh, mainly managing the set of...
Ordering::Type GetOrdering() const
Return the ordering method.
Mesh * GetMesh() const
Returns the mesh.
int GetVDim() const
Returns the vector dimension of the finite element space.
const FiniteElement * GetTypicalFE() const
Return GetFE(0) if the local mesh is not empty; otherwise return a typical FE based on the Geometry t...
virtual const DofToQuad & GetDofToQuad(const IntegrationRule &ir, DofToQuad::Mode mode) const
Return a DofToQuad structure corresponding to the given IntegrationRule using the given DofToQuad::Mo...
int GetDof() const
Returns the number of degrees of freedom in the finite element.
const IntegrationRule & Get(int GeomType, int Order)
Returns an integration rule for given GeomType and Order.
const IntegrationRule * IntRule
int Dimension() const
Dimension of the reference space used within the elements.
const GeometricFactors * GetGeometricFactors(const IntegrationRule &ir, const int flags, MemoryType d_mt=MemoryType::DEFAULT)
Return the mesh geometric factors corresponding to the given integration rule.
@ FULL
Store the coefficient as a full QuadratureFunction.
ElementDofOrdering GetEVectorOrdering(const FiniteElementSpace &fes)
Return LEXICOGRAPHIC if mesh contains only one topology and the elements are tensor elements,...
@ NATIVE
Native ordering as defined by the FiniteElement.
IntegrationRules IntRules(0, Quadrature1D::GaussLegendre)
A global object with all integration rules (defined in intrules.cpp)