5 #ifndef __FORCESSHELLFE_H 6 #define __FORCESSHELLFE_H 17 template<
typename ConfiguratorType >
40 template<
typename ConfiguratorType >
48 static const int dim = 3;
50 std::unique_ptr<typename ConfiguratorType::VectorType>
_dof;
51 std::unique_ptr<DiscreteVectorFunctionDefaultShellFE<ConfiguratorType>>
_x;
61 for (
int i = 0; i < numGlobalDofs; ++i) {
62 for (
int c = 0; c < dim; ++c) {
63 (*_dof)[c*numGlobalDofs + i] = grid.
getVertex(i)[c];
76 _x->evaluateAtQuadPoint(el, q, cartCoord);
85 RealType nl = std::pow(
aol::Sqr(-1. + 2. * cartCoord[0]) +
aol::Sqr(-1. + 2. * cartCoord[1]), 1./3.) *
86 sin(2./3. * atan2(-1. + 2.*cartCoord[1], -1. + 2.*cartCoord[0]));
93 template <
typename ConfiguratorType>
98 const bool collapseBoundaryValues =
true)
108 if (collapseBoundaryValues) {
109 for (
int i = 0; i < numGlobalDofs; ++i) {
110 if (boundaryMask[i]) {
118 template <
typename ConfiguratorType>
123 const bool collapseBoundaryValues =
true)
133 if (collapseBoundaryValues) {
134 for (
int i = 0; i < numGlobalDofs; ++i) {
135 if (boundaryMask[i]) {
DataTypeContainer::MaskType MaskType
std::unique_ptr< DiscreteVectorFunctionDefaultShellFE< ConfiguratorType > > _x
ConfiguratorType::TangentVecType TangentVecType
DataTypeContainer::VectorType VectorType
const MaskType & getDirichletMask() const
const Point3DType & getVertex(const int num) const
Integrator for , of some scalar valued function .
void createMaskedConstantRHS(const ConfiguratorType &conf, const ShellHandler< ConfiguratorType > &shellHandler, typename ConfiguratorType::RealType val, typename ConfiguratorType::VectorType &rhs, const bool collapseBoundaryValues=true)
Assembles constant rhs.
createNonConstantRHS(const ConfiguratorType &conf)
const ConfiguratorType & _config
RealType getNonlinearity(const typename ConfiguratorType::ElementType &el, int) const
DataTypeContainer::DomVecType DomVecType
DataTypeContainer::RealType RealType
RealType evalRHS(typename ConfiguratorType::TangentVecType &cartCoord) const
ConfiguratorType::RealType RealType
Assembly operator for constant RHS.
const DomVecType & getRefCoord(int QuadPoint) const
Returns the coordinates of a quadrature point.
void createMaskedNonConstantRHS(const ConfiguratorType &conf, const ShellHandler< ConfiguratorType > &shellHandler, typename ConfiguratorType::RealType val, typename ConfiguratorType::VectorType &rhs, const bool collapseBoundaryValues=true)
Assembles sin-type rhs.
Additional information about TriangleMeshes.
Helper class to evaluate a discrete vector-valued nodal function on a given mesh. ...
createConstantRHS(const ConfiguratorType &conf, const RealType val)
DataTypeContainer::TangentVecType TangentVecType
const InitType & getInitializer() const
Returns the mesh.
int getNumGlobalDofs() const
Returns the number of global degrees of freedom.
Assembly operator for non-constant RHS.
std::unique_ptr< typename ConfiguratorType::VectorType > _dof
ConfiguratorType::TangentVecType TangentVecType
ConfiguratorType::RealType RealType
void assembleAdd(VectorType &Dest) const
RealType getAreaOfFlattenedTriangle() const
Base classes for integration type operators defined using the unit triangle.
Configurator for Finite Elements.
Triangle which has a tangent space at each node.
const BaseFuncSetType & getBaseFunctionSet(const ElementType &) const
Returns the base funcitons set for an element.
RealType getNonlinearity(const typename ConfiguratorType::ElementType &el, int q) const