v0.14.0
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
MoFEM::OpFluxRhsImpl< NaturalMeshsetType< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase > Struct Template Reference

Base class for OpFluxRhsImpl<NaturalMeshsetType<T>, 1, FIELD_DIM, A, I, OpBase> More...

#include <src/boundary_conditions/NaturalMeshsetType.hpp>

Inheritance diagram for MoFEM::OpFluxRhsImpl< NaturalMeshsetType< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >:
[legend]
Collaboration diagram for MoFEM::OpFluxRhsImpl< NaturalMeshsetType< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >:
[legend]

Public Types

using OpSource = typename FormsIntegrators< OpBase >::template Assembly< A >::template LinearForm< I >::template OpSource< 1, FIELD_DIM >
 

Public Member Functions

 OpFluxRhsImpl (const std::string field_name, FTensor::Tensor1< double, FIELD_DIM > t_force, boost::shared_ptr< Range > ents_ptr, std::vector< boost::shared_ptr< ScalingMethod >> smv, ScalarFun user_fun=[](double, double, double) { return 1;})
 

Protected Member Functions

 OpFluxRhsImpl (const std::string field_name, std::vector< boost::shared_ptr< ScalingMethod >> smv, ScalarFun user_fun=[](double, double, double) { return 1;})
 

Protected Attributes

FTensor::Tensor1< double, FIELD_DIMtForce
 
FTensor::Tensor1< double, FIELD_DIMtScaledForce
 
VecOfTimeScalingMethods vecOfTimeScalingMethods
 
ScalarFun userFun
 

Detailed Description

template<int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase>
struct MoFEM::OpFluxRhsImpl< NaturalMeshsetType< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >

Base class for OpFluxRhsImpl<NaturalMeshsetType<T>, 1, FIELD_DIM, A, I, OpBase>

This is only for scalar bases.

Note
It is derivitive from FormsIntegrators<OpBase>::template Assembly<A>::template LinearForm< I>::template OpSource<1, FIELD_DIM>
Template Parameters
FIELD_DIMfield dimension
A
I
OpBaseBase element operator for integration volume, face, edge, or vertex

Definition at line 96 of file NaturalMeshsetType.hpp.

Member Typedef Documentation

◆ OpSource

template<int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase >
using MoFEM::OpFluxRhsImpl< NaturalMeshsetType< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >::OpSource = typename FormsIntegrators<OpBase>::template Assembly< A>::template LinearForm<I>::template OpSource<1, FIELD_DIM>

Definition at line 101 of file NaturalMeshsetType.hpp.

Constructor & Destructor Documentation

◆ OpFluxRhsImpl() [1/2]

template<int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase >
MoFEM::OpFluxRhsImpl< NaturalMeshsetType< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >::OpFluxRhsImpl ( const std::string  field_name,
FTensor::Tensor1< double, FIELD_DIM t_force,
boost::shared_ptr< Range ents_ptr,
std::vector< boost::shared_ptr< ScalingMethod >>  smv,
ScalarFun  user_fun = [](doubledoubledouble) { return 1; } 
)

Definition at line 277 of file NaturalMeshsetType.hpp.

282  : OpFluxRhsImpl(field_name, smv, user_fun) {
284  this->tForce(i) = t_force(i);
285  this->entsPtr = ents_ptr;
286 }

◆ OpFluxRhsImpl() [2/2]

template<int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase >
MoFEM::OpFluxRhsImpl< NaturalMeshsetType< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >::OpFluxRhsImpl ( const std::string  field_name,
std::vector< boost::shared_ptr< ScalingMethod >>  smv,
ScalarFun  user_fun = [](doubledoubledouble) { return 1; } 
)
protected

Definition at line 290 of file NaturalMeshsetType.hpp.

294 
295  [this](const double x, const double y, const double z) {
297  tScaledForce(i) = tForce(i) * userFun(x, y, z);
298  return tScaledForce;
299  }
300 
301  ),
302  vecOfTimeScalingMethods(smv), userFun(user_fun) {
303  this->timeScalingFun = [this](const double t) {
304  double s = 1;
305  for (auto &o : vecOfTimeScalingMethods) {
306  s *= o->getScale(t);
307  }
308  return s;
309  };
310 
311  static_assert(FIELD_DIM > 1, "Not implemented for scalar field");
312 }

Member Data Documentation

◆ tForce

template<int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase >
FTensor::Tensor1<double, FIELD_DIM> MoFEM::OpFluxRhsImpl< NaturalMeshsetType< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >::tForce
protected

Definition at line 114 of file NaturalMeshsetType.hpp.

◆ tScaledForce

template<int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase >
FTensor::Tensor1<double, FIELD_DIM> MoFEM::OpFluxRhsImpl< NaturalMeshsetType< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >::tScaledForce
protected

Definition at line 115 of file NaturalMeshsetType.hpp.

◆ userFun

template<int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase >
ScalarFun MoFEM::OpFluxRhsImpl< NaturalMeshsetType< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >::userFun
protected

Definition at line 117 of file NaturalMeshsetType.hpp.

◆ vecOfTimeScalingMethods

template<int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase >
VecOfTimeScalingMethods MoFEM::OpFluxRhsImpl< NaturalMeshsetType< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >::vecOfTimeScalingMethods
protected

Definition at line 116 of file NaturalMeshsetType.hpp.


The documentation for this struct was generated from the following file:
MoFEM::OpFluxRhsImpl< NaturalMeshsetType< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >::userFun
ScalarFun userFun
Definition: NaturalMeshsetType.hpp:117
FIELD_DIM
constexpr int FIELD_DIM
Definition: child_and_parent.cpp:15
MoFEM::OpFluxRhsImpl< NaturalMeshsetType< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >::tForce
FTensor::Tensor1< double, FIELD_DIM > tForce
Definition: NaturalMeshsetType.hpp:114
MoFEM::OpFluxRhsImpl< NaturalMeshsetType< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >::tScaledForce
FTensor::Tensor1< double, FIELD_DIM > tScaledForce
Definition: NaturalMeshsetType.hpp:115
MoFEM::OpFluxRhsImpl< NaturalMeshsetType< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >::vecOfTimeScalingMethods
VecOfTimeScalingMethods vecOfTimeScalingMethods
Definition: NaturalMeshsetType.hpp:116
t
constexpr double t
plate stiffness
Definition: plate.cpp:59
i
FTensor::Index< 'i', SPACE_DIM > i
Definition: hcurl_divergence_operator_2d.cpp:27
field_name
constexpr auto field_name
Definition: poisson_2d_homogeneous.cpp:13
FTensor::Index< 'i', FIELD_DIM >
MoFEM::OpFluxRhsImpl< NaturalMeshsetType< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >::OpSource
typename FormsIntegrators< OpBase >::template Assembly< A >::template LinearForm< I >::template OpSource< 1, FIELD_DIM > OpSource
Definition: NaturalMeshsetType.hpp:101
MoFEM::OpFluxRhsImpl< NaturalMeshsetType< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >::OpFluxRhsImpl
OpFluxRhsImpl(const std::string field_name, FTensor::Tensor1< double, FIELD_DIM > t_force, boost::shared_ptr< Range > ents_ptr, std::vector< boost::shared_ptr< ScalingMethod >> smv, ScalarFun user_fun=[](double, double, double) { return 1;})
Definition: NaturalMeshsetType.hpp:277