30template <
typename ShapeFunction,
int GlobalDim>
45 std::size_t
const local_matrix_size,
47 bool const is_axially_symmetric,
49 :
Base(e, is_axially_symmetric, integration_method),
57 double const t, std::vector<GlobalVector*>
const& ,
63 unsigned const n_integration_points =
68 typeid(
_data.neumann_bc_parameter))
72 parameter_node_values =
73 _data.neumann_bc_parameter
76 ShapeFunction::MeshElement::n_all_nodes>();
79 double integral_measure = 1.0;
80 for (
unsigned ip = 0; ip < n_integration_points; ip++)
83 auto const& N = ip_data.N;
84 auto const& w = ip_data.weight;
93 if (
_data.integral_measure)
95 integral_measure = (*
_data.integral_measure)(t, position)[0];
98 typeid(
_data.neumann_bc_parameter))
101 N * parameter_node_values.dot(N) * w * integral_measure;
105 auto const value =
_data.neumann_bc_parameter(t, position)[0];
106 _local_rhs.noalias() += N * value * w * integral_measure;
MathLib::EigenMatrix GlobalMatrix
MathLib::EigenVector GlobalVector
EigenFixedShapeMatrixPolicy< ShapeFunction, GlobalDim > ShapeMatrixPolicyType
void add(IndexType rowId, double v)
add entry
GenericNaturalBoundaryConditionLocalAssembler(MeshLib::Element const &e, bool is_axially_symmetric, NumLib::GenericIntegrationMethod const &integration_method)
MeshLib::Element const & _element
NumLib::GenericIntegrationMethod const & _integration_method
std::vector< NAndWeight, Eigen::aligned_allocator< NAndWeight > > const _ns_and_weights
typename ShapeMatricesType::NodalVectorType NodalVectorType
NeumannBoundaryConditionLocalAssembler(MeshLib::Element const &e, std::size_t const local_matrix_size, NumLib::GenericIntegrationMethod const &integration_method, bool const is_axially_symmetric, NeumannBoundaryConditionData const &data)
NodalVectorType _local_rhs
GenericNaturalBoundaryConditionLocalAssembler< ShapeFunction, GlobalDim > Base
typename Base::NodalVectorType NodalVectorType
void assemble(std::size_t const id, NumLib::LocalToGlobalIndexMap const &dof_table_boundary, double const t, std::vector< GlobalVector * > const &, int const, GlobalMatrix *, GlobalVector &b, GlobalMatrix *) override
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
NeumannBoundaryConditionData const & _data
ShapeMatrixPolicyType< ShapeFunction, GlobalDim > ShapeMatricesType
std::vector< GlobalIndexType > getIndices(std::size_t const mesh_item_id, NumLib::LocalToGlobalIndexMap const &dof_table)
std::array< double, 3 > interpolateCoordinates(MeshLib::Element const &e, typename ShapeMatricesType::ShapeMatrices::ShapeType const &N)
A parameter represented by a mesh property vector.
ParameterLib::Parameter< double > const & neumann_bc_parameter
ParameterLib::Parameter< double > const *const integral_measure