OGS
SurfaceFlux.h
Go to the documentation of this file.
1
11#pragma once
12
13#include <vector>
14
16
17namespace ProcessLib
18{
19class SurfaceFlux final
20{
21public:
27 SurfaceFlux(MeshLib::Mesh& boundary_mesh,
28 std::size_t bulk_property_number_of_components,
29 unsigned const integration_order);
30
42 void integrate(std::vector<GlobalVector*> const& x,
44 double const t,
45 MeshLib::Mesh const& bulk_mesh,
46 std::vector<std::size_t> const& active_element_ids,
47 std::function<Eigen::Vector3d(
48 std::size_t const, MathLib::Point3d const&, double const,
49 std::vector<GlobalVector*> const&)> const& getFlux);
50
51private:
52 // the local assemblers for each element of the mesh
53 std::vector<std::unique_ptr<SurfaceFluxLocalAssemblerInterface>>
55};
56
57} // namespace ProcessLib
void integrate(std::vector< GlobalVector * > const &x, MeshLib::PropertyVector< double > &balance, double const t, MeshLib::Mesh const &bulk_mesh, std::vector< std::size_t > const &active_element_ids, std::function< Eigen::Vector3d(std::size_t const, MathLib::Point3d const &, double const, std::vector< GlobalVector * > const &)> const &getFlux)
SurfaceFlux(MeshLib::Mesh &boundary_mesh, std::size_t bulk_property_number_of_components, unsigned const integration_order)
std::vector< std::unique_ptr< SurfaceFluxLocalAssemblerInterface > > _local_assemblers
Definition SurfaceFlux.h:54