OGS
HeatTransportBHELocalAssemblerSoil.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
17#include "SecondaryData.h"
18
19namespace ProcessLib
20{
21namespace HeatTransportBHE
22{
23template <typename ShapeFunction>
26{
27public:
29 ShapeMatrixPolicyType<ShapeFunction, 3 /* GlobalDim */>;
33
37
41 delete;
42
44 MeshLib::Element const& e,
45 NumLib::GenericIntegrationMethod const& integration_method,
46 bool const is_axially_symmetric,
47 HeatTransportBHEProcessData& process_data,
48 BHEMeshData const& bhe_mesh_data);
49
50 void assemble(double const /*t*/, double const /*dt*/,
51 std::vector<double> const& /*local_x*/,
52 std::vector<double> const& /*local_x_prev*/,
53 std::vector<double>& /*local_M_data*/,
54 std::vector<double>& /*local_K_data*/,
55 std::vector<double>& /*local_b_data*/) override;
56
57 void assembleWithJacobian(double const t, double const dt,
58 std::vector<double> const& local_x,
59 std::vector<double> const& local_x_prev,
60 std::vector<double>& local_rhs_data,
61 std::vector<double>& local_Jac_data) override;
62
63 Eigen::Map<const Eigen::RowVectorXd> getShapeMatrix(
64 const unsigned integration_point) const override
65 {
66 auto const& N = _secondary_data.N[integration_point];
67
68 // assumes N is stored contiguously in memory
69 return Eigen::Map<const Eigen::RowVectorXd>(N.data(), N.size());
70 }
71
72private:
74
75 std::vector<
77 Eigen::aligned_allocator<IntegrationPointDataSoil<
80
82
83 std::vector<ShapeMatrices, Eigen::aligned_allocator<ShapeMatrices>>
85
87
89};
90} // namespace HeatTransportBHE
91} // namespace ProcessLib
92
EigenFixedShapeMatrixPolicy< ShapeFunction, GlobalDim > ShapeMatrixPolicyType
HeatTransportBHELocalAssemblerSoil(HeatTransportBHELocalAssemblerSoil &&)=delete
typename ShapeMatricesType::GlobalDimNodalMatrixType GlobalDimNodalMatrixType
std::vector< ShapeMatrices, Eigen::aligned_allocator< ShapeMatrices > > _shape_matrices
void assemble(double const, double const, std::vector< double > const &, std::vector< double > const &, std::vector< double > &, std::vector< double > &, std::vector< double > &) override
void assembleWithJacobian(double const t, double const dt, std::vector< double > const &local_x, std::vector< double > const &local_x_prev, std::vector< double > &local_rhs_data, std::vector< double > &local_Jac_data) override
std::vector< IntegrationPointDataSoil< NodalRowVectorType, GlobalDimNodalMatrixType >, Eigen::aligned_allocator< IntegrationPointDataSoil< NodalRowVectorType, GlobalDimNodalMatrixType > > > _ip_data
Eigen::Map< const Eigen::RowVectorXd > getShapeMatrix(const unsigned integration_point) const override
Provides the shape matrix at the given integration point.
HeatTransportBHELocalAssemblerSoil(HeatTransportBHELocalAssemblerSoil const &)=delete
NumLib::ShapeMatrices< NodalRowVectorType, DimNodalMatrixType, DimMatrixType, GlobalDimNodalMatrixType > ShapeMatrices
MatrixType< ShapeFunction::NPOINTS, ShapeFunction::NPOINTS > NodalMatrixType
MatrixType< GlobalDim, ShapeFunction::NPOINTS > GlobalDimNodalMatrixType
VectorType< ShapeFunction::NPOINTS > NodalVectorType
RowVectorType< ShapeFunction::NPOINTS > NodalRowVectorType