BioCMAMC-ST
impl_mass_transfer.hpp
1#ifndef __IMPL_HYDRO_MASS_TRANSFER_HPP__
2#define __IMPL_HYDRO_MASS_TRANSFER_HPP__
3
4#ifndef NDEBUG
5# pragma GCC diagnostic push
6# pragma GCC diagnostic ignored "-Wunused-but-set-variable"
7# pragma GCC diagnostic ignored "-Wnan-infinity-disabled"
8#endif
9#include <Eigen/Core>
10#include <Eigen/Dense>
11#ifndef NDEBUG
12# pragma GCC diagnostic pop
13#endif
14#include <cma_utils/iteration_state.hpp>
15#include <eigen_kokkos.hpp>
16#include <mc/domain.hpp>
17#include <simulation/mass_transfer.hpp>
18
19namespace Simulation
20{
21 class ScalarSimulation;
22};
23
25{
27 {
28 ColMajorMatrixtype mtr;
29 Eigen::ArrayXXd kla;
30 Eigen::ArrayXd Henry;
31 double db;
32 };
33
34 namespace Impl
35 {
36
39 const Eigen::ArrayXXd& liquid_concentration,
40 const Eigen::ArrayXXd& gas_concentration,
41 const Eigen::MatrixXd& liquid_volume,
42 const CmaUtils::IterationState& state);
43
46 const Eigen::ArrayXXd& liquid_concentration,
47 const Eigen::ArrayXXd& gas_concentration,
48 const Eigen::MatrixXd& liquid_volume,
49 const CmaUtils::IterationState& state);
50
53 const Eigen::ArrayXXd& liquid_concentration,
54 const Eigen::ArrayXXd& gas_concentration,
55 const Eigen::MatrixXd& liquid_volume,
56 const CmaUtils::IterationState& state);
57
58 }; // namespace Impl
59
60 struct KlFonctor
61 {
62 double operator()(double kl);
63 Eigen::ArrayXXd operator()(const Eigen::ArrayXd& energy_dissipation_array,
64 const Eigen::ArrayXd& diffusion);
65 double operator()(double kla, bool _a);
66 };
67
69 {
70 double operator()()
71 {
72 return 1;
73 }
74 double operator()(double a);
75 Eigen::ArrayXXd operator()(const Eigen::ArrayXd& a);
76 Eigen::ArrayXXd operator()(double diameter, const Eigen::ArrayXd& a);
77 };
78
80 {
81 double operator()(double cstar);
82 Eigen::ArrayXXd operator()(const Eigen::ArrayXXd& cstar);
83 Eigen::ArrayXXd operator()(const Eigen::ArrayXXd& henry, bool _henry);
84 };
85
86} // namespace Simulation::MassTransfer
87
88#endif //__SIMULATION_HYDRO_MASS_TRANSFER_HPP__ __SIM_HYDRO_MASS_TRANSFER__
Definition scalar_simulation.hpp:31
Definition impl_mass_transfer.hpp:35
void flowmap_kla_gas_liquid_mass_transfer(MassTransferProxy &mtr, const Eigen::ArrayXXd &liquid_concentration, const Eigen::ArrayXXd &gas_concentration, const Eigen::MatrixXd &liquid_volume, const CmaUtils::IterationState &state)
Definition impl_mtr.cpp:156
void flowmap_gas_liquid_mass_transfer(MassTransferProxy &mtr, const Eigen::ArrayXXd &liquid_concentration, const Eigen::ArrayXXd &gas_concentration, const Eigen::MatrixXd &liquid_volume, const CmaUtils::IterationState &state)
Definition impl_mtr.cpp:98
void fixed_kla_gas_liquid_mass_transfer(MassTransferProxy &mtr, const Eigen::ArrayXXd &liquid_concentration, const Eigen::ArrayXXd &gas_concentration, const Eigen::MatrixXd &liquid_volume, const CmaUtils::IterationState &state)
Definition impl_mtr.cpp:139
Definition impl_mass_transfer.hpp:25
Namespace that contains classes and structures related to simulation handling.
Definition host_specific.hpp:13
Structure to store information about the reactor state during simulation.
Definition iteration_state.hpp:25
Definition impl_mass_transfer.hpp:80
Eigen::ArrayXXd operator()(const Eigen::ArrayXXd &cstar)
Eigen::ArrayXXd operator()(const Eigen::ArrayXXd &henry, bool _henry)
Definition impl_mass_transfer.hpp:69
Eigen::ArrayXXd operator()(const Eigen::ArrayXd &a)
Eigen::ArrayXXd operator()(double diameter, const Eigen::ArrayXd &a)
double operator()()
Definition impl_mass_transfer.hpp:70
Definition impl_mass_transfer.hpp:61
Eigen::ArrayXXd operator()(const Eigen::ArrayXd &energy_dissipation_array, const Eigen::ArrayXd &diffusion)
double operator()(double kla, bool _a)
Definition impl_mass_transfer.hpp:27
double db
Definition impl_mass_transfer.hpp:31
Eigen::ArrayXd Henry
Definition impl_mass_transfer.hpp:30
Eigen::ArrayXXd kla
Definition impl_mass_transfer.hpp:29
ColMajorMatrixtype mtr
Definition impl_mass_transfer.hpp:28