OGS
LookupTable.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 <iterator>
7#include <map>
8#include <vector>
9
10#include "BaseLib/Logging.h"
12
13namespace ProcessLib
14{
15namespace ComponentTransport
16{
18{
19 std::pair<double, double> bounding_points;
20 double value;
21};
22
23struct Field
24{
25 Field(std::vector<std::vector<std::size_t>> point_id_groups_,
26 std::vector<double> seed_points_, std::string name_, int variable_id_)
27 : point_id_groups(std::move(point_id_groups_)),
28 seed_points(std::move(seed_points_)),
29 name(std::move(name_)),
30 variable_id(variable_id_)
31 {
32 }
33
34 std::pair<double, double> getBoundingSeedPoints(double const value) const;
35
36 std::vector<std::vector<std::size_t>> const point_id_groups;
37 std::vector<double> const seed_points;
38 std::string const name;
39 int const variable_id;
40};
41
43{
44 LookupTable(std::vector<Field> input_fields_,
45 std::map<std::string, std::vector<double>>
46 tabular_data_)
47 : input_fields(std::move(input_fields_)),
48 tabular_data(std::move(tabular_data_))
49 {
50 }
51
52 void lookup(std::vector<GlobalVector*> const& x,
53 std::vector<GlobalVector*> const& x_prev,
54 std::size_t const n_nodes) const;
55
56 std::size_t getTableEntryID(std::vector<double> const& entry_input) const;
57
58 std::vector<Field> const input_fields;
59 std::map<std::string, std::vector<double>> const tabular_data;
60};
61} // namespace ComponentTransport
62} // namespace ProcessLib
std::pair< double, double > getBoundingSeedPoints(double const value) const
std::vector< double > const seed_points
Definition LookupTable.h:37
std::vector< std::vector< std::size_t > > const point_id_groups
Definition LookupTable.h:36
Field(std::vector< std::vector< std::size_t > > point_id_groups_, std::vector< double > seed_points_, std::string name_, int variable_id_)
Definition LookupTable.h:25
LookupTable(std::vector< Field > input_fields_, std::map< std::string, std::vector< double > > tabular_data_)
Definition LookupTable.h:44
void lookup(std::vector< GlobalVector * > const &x, std::vector< GlobalVector * > const &x_prev, std::size_t const n_nodes) const
std::size_t getTableEntryID(std::vector< double > const &entry_input) const
std::map< std::string, std::vector< double > > const tabular_data
Definition LookupTable.h:59
std::vector< Field > const input_fields
Definition LookupTable.h:58