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