OGS
|
Definition at line 42 of file SurfaceFluxLocalAssembler.h.
#include <SurfaceFluxLocalAssembler.h>
Public Member Functions | |
SurfaceFluxLocalAssembler (MeshLib::Element const &surface_element, std::size_t, NumLib::GenericIntegrationMethod const &integration_method, bool const is_axially_symmetric, MeshLib::PropertyVector< std::size_t > const &bulk_element_ids, MeshLib::PropertyVector< std::size_t > const &bulk_face_ids) | |
void | integrate (std::size_t const element_id, std::vector< GlobalVector * > const &x, MeshLib::PropertyVector< double > &specific_flux, double const t, MeshLib::Mesh const &bulk_mesh, std::function< Eigen::Vector3d(std::size_t const, MathLib::Point3d const &, double const, std::vector< GlobalVector * > const &)> getFlux) override |
Public Member Functions inherited from ProcessLib::SurfaceFluxLocalAssemblerInterface | |
virtual | ~SurfaceFluxLocalAssemblerInterface ()=default |
Protected Types | |
using | ShapeMatricesType = ShapeMatrixPolicyType<ShapeFunction, GlobalDim> |
using | NodalMatrixType = typename ShapeMatricesType::NodalMatrixType |
using | NodalVectorType = typename ShapeMatricesType::NodalVectorType |
Static Private Member Functions | |
static Eigen::Vector3d | getSurfaceNormal (MeshLib::Element const &surface_element, MeshLib::Element const &bulk_element) |
Private Attributes | |
MeshLib::Element const & | _surface_element |
std::vector< double > | _detJ_times_integralMeasure |
NumLib::GenericIntegrationMethod const & | _integration_method |
std::size_t const | _bulk_element_id |
std::size_t const | _bulk_face_id |
|
protected |
Definition at line 47 of file SurfaceFluxLocalAssembler.h.
|
protected |
Definition at line 48 of file SurfaceFluxLocalAssembler.h.
|
protected |
Definition at line 46 of file SurfaceFluxLocalAssembler.h.
|
inline |
Precomputes the shape matrices for a given surface element.
surface_element | The surface element used for precomputing the shape matrices used later on for the integration. |
is_axially_symmetric | corrects integration measure for cylinder coordinates. |
bulk_element_ids | The id of the corresponding element in the bulk mesh. |
bulk_face_ids | The id of the corresponding face in the bulk element. |
integration_method | The integration method used. |
Definition at line 61 of file SurfaceFluxLocalAssembler.h.
References ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::_detJ_times_integralMeasure, ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::_integration_method, ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::_surface_element, NumLib::GenericIntegrationMethod::getNumberOfPoints(), NumLib::initShapeMatrices(), and NumLib::N_J.
|
inlinestaticprivate |
Definition at line 154 of file SurfaceFluxLocalAssembler.h.
References MathLib::Point3d::asEigenVector3d(), MeshLib::Element::getGeomType(), MeshLib::Element::getNode(), MeshLib::FaceRule::getSurfaceNormal(), and MeshLib::LINE.
Referenced by ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::integrate().
|
inlineoverridevirtual |
Integration for the element with the id element_id
.
element_id | id of the element |
x | The global vector containing the values for numerical integration. |
specific_flux | PropertyVector the integration result will be stored into, where specific_flux has the same number of entries like mesh elements exists. |
t | The integration is performed at the time t. |
bulk_mesh | Stores a reference to the bulk mesh that is needed to fetch the information for the integration over the surface mesh. |
getFlux | function that calculates the flux in the integration points of the face elements of the bulk element that belongs to the surface. |
Implements ProcessLib::SurfaceFluxLocalAssemblerInterface.
Definition at line 100 of file SurfaceFluxLocalAssembler.h.
References ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::_bulk_element_id, ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::_bulk_face_id, ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::_detJ_times_integralMeasure, ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::_integration_method, ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::_surface_element, MeshLib::getBulkElementPoint(), MeshLib::PropertyVector< PROP_VAL_TYPE >::getComponent(), MeshLib::Mesh::getElement(), MeshLib::PropertyVectorBase::getNumberOfGlobalComponents(), NumLib::GenericIntegrationMethod::getNumberOfPoints(), ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::getSurfaceNormal(), and NumLib::GenericIntegrationMethod::getWeightedPoint().
|
private |
Definition at line 187 of file SurfaceFluxLocalAssembler.h.
Referenced by ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::integrate().
|
private |
Definition at line 188 of file SurfaceFluxLocalAssembler.h.
Referenced by ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::integrate().
|
private |
Definition at line 184 of file SurfaceFluxLocalAssembler.h.
Referenced by ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::SurfaceFluxLocalAssembler(), and ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::integrate().
|
private |
Definition at line 186 of file SurfaceFluxLocalAssembler.h.
Referenced by ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::SurfaceFluxLocalAssembler(), and ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::integrate().
|
private |
Definition at line 182 of file SurfaceFluxLocalAssembler.h.
Referenced by ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::SurfaceFluxLocalAssembler(), and ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::integrate().