OGS
SurfaceFlux.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
6#include <vector>
7
9
10namespace ProcessLib
11{
12class SurfaceFlux final
13{
14public:
20 SurfaceFlux(MeshLib::Mesh& boundary_mesh,
21 std::size_t bulk_property_number_of_components,
22 unsigned const integration_order);
23
35 void integrate(std::vector<GlobalVector*> const& x,
37 double const t,
38 MeshLib::Mesh const& bulk_mesh,
39 std::vector<std::size_t> const& active_element_ids,
40 std::function<Eigen::Vector3d(
41 std::size_t const, MathLib::Point3d const&, double const,
42 std::vector<GlobalVector*> const&)> const& getFlux);
43
44private:
45 // the local assemblers for each element of the mesh
46 std::vector<std::unique_ptr<SurfaceFluxLocalAssemblerInterface>>
48};
49
50} // 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:47