Chi-Tech
lbs_point_source.h
Go to the documentation of this file.
1#ifndef CHITECH_LBS_POINT_SOURCE_H
2#define CHITECH_LBS_POINT_SOURCE_H
3
4#include <utility>
5
6#include "mesh/chi_mesh.h"
7
8namespace lbs
9{
10
12{
13private:
15 const std::vector<double> groupwise_strength_;
16
17public:
19 {
21 uint64_t cell_local_id;
22 std::vector<double> shape_values;
23 std::vector<double> node_weights;
24 };
25private:
26 std::vector<ContainingCellInfo> m_containing_cells_;
27
28public:
30 std::vector<double> strength) :
31 location_(location),
32 groupwise_strength_(std::move(strength))
33 {}
34
35 const chi_mesh::Vector3& Location() const { return location_; }
36
37 const std::vector<double>& Strength() const { return groupwise_strength_; }
38
39 void AddContainingCellInfo(double volume_weight,
40 uint64_t cell_local_id,
41 std::vector<double> shape_values,
42 std::vector<double> node_weights)
43 {
44 m_containing_cells_.push_back(
45 ContainingCellInfo{volume_weight, cell_local_id,
46 std::move(shape_values),
47 std::move(node_weights)});
48 }
49
50 const std::vector<ContainingCellInfo>& ContainingCellsInfo() const
51 {
53 }
54
56};
57
58}//namespace lbs
59
60#endif //CHITECH_LBS_POINT_SOURCE_H
std::vector< ContainingCellInfo > m_containing_cells_
const std::vector< ContainingCellInfo > & ContainingCellsInfo() const
const chi_mesh::Vector3 & Location() const
const chi_mesh::Vector3 location_
const std::vector< double > & Strength() const
PointSource(const chi_mesh::Vector3 &location, std::vector< double > strength)
void AddContainingCellInfo(double volume_weight, uint64_t cell_local_id, std::vector< double > shape_values, std::vector< double > node_weights)
const std::vector< double > groupwise_strength_