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

#include <src/boundary_conditions/NaturalMeshsetType.hpp>

Inheritance diagram for MoFEM::OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >:
[legend]
Collaboration diagram for MoFEM::OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< 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< TimeScaleVector< FIELD_DIM >>> smv, ScalarFun user_fun=[](double, double, double) { return 1;})
 Function to push operators to rhs pipeline. This function user API. More...
 

Protected Member Functions

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

Protected Attributes

FTensor::Tensor1< double, FIELD_DIMtForce
 
VecOfTimeVectorScalingMethods< FIELD_DIMvecOfTimeVectorScalingMethods
 
ScalarFun userFun
 

Detailed Description

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

Definition at line 248 of file NaturalMeshsetType.hpp.

Member Typedef Documentation

◆ OpSource

template<int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase >
using MoFEM::OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< 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 254 of file NaturalMeshsetType.hpp.

Constructor & Destructor Documentation

◆ OpFluxRhsImpl() [1/2]

template<int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase >
MoFEM::OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< 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< TimeScaleVector< FIELD_DIM >>>  smv,
ScalarFun  user_fun = [](doubledoubledouble) { return 1; } 
)

Function to push operators to rhs pipeline. This function user API.

Template Parameters
BCTYPE
BASE_DIM
FIELD_DIM
A
I
OpBase

Definition at line 674 of file NaturalMeshsetType.hpp.

680  : OpFluxRhsImpl(field_name, smv, user_fun) {
682  this->tForce(i) = t_force(i);
683  this->entsPtr = ents_ptr;
684 }

◆ OpFluxRhsImpl() [2/2]

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

Definition at line 689 of file NaturalMeshsetType.hpp.

694  [this](double x, double y, double z) {
696  auto t = this->getFEMethod()->ts_t;
697  for (auto &o : vecOfTimeVectorScalingMethods) {
698  auto vec = o->getVector(t);
699  this->tForce(i) = vec(i) * userFun(x, y, z);
700  }
701  return this->tForce;
702  }),
703  vecOfTimeVectorScalingMethods(smv), userFun(user_fun) {
704 
705  static_assert(FIELD_DIM > 1, "Not implemented for scalar field");
706 }

Member Data Documentation

◆ tForce

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

Definition at line 268 of file NaturalMeshsetType.hpp.

◆ userFun

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

Definition at line 270 of file NaturalMeshsetType.hpp.

◆ vecOfTimeVectorScalingMethods

template<int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase >
VecOfTimeVectorScalingMethods<FIELD_DIM> MoFEM::OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >::vecOfTimeVectorScalingMethods
protected

Definition at line 269 of file NaturalMeshsetType.hpp.


The documentation for this struct was generated from the following file:
FIELD_DIM
constexpr int FIELD_DIM
Definition: child_and_parent.cpp:15
MoFEM::OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< 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< TimeScaleVector< FIELD_DIM >>> smv, ScalarFun user_fun=[](double, double, double) { return 1;})
Function to push operators to rhs pipeline. This function user API.
Definition: NaturalMeshsetType.hpp:674
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< NaturalMeshsetTypeVectorScaling< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >::userFun
ScalarFun userFun
Definition: NaturalMeshsetType.hpp:270
MoFEM::OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >::tForce
FTensor::Tensor1< double, FIELD_DIM > tForce
Definition: NaturalMeshsetType.hpp:268
MoFEM::OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< 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:254
MoFEM::OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >::vecOfTimeVectorScalingMethods
VecOfTimeVectorScalingMethods< FIELD_DIM > vecOfTimeVectorScalingMethods
Definition: NaturalMeshsetType.hpp:269