BioCMAMC-ST
impl_mass_transfer.hpp
1#ifndef __IMPL_HYDRO_MASS_TRANSFER_HPP__
2#define __IMPL_HYDRO_MASS_TRANSFER_HPP__
3
4#include "cma_utils/iteration_state.hpp"
5#include "eigen_kokkos.hpp"
6#include <Eigen/Core>
7#include <Eigen/Dense>
8#include <mc/domain.hpp>
9#include <simulation/mass_transfer.hpp>
10
11namespace Simulation
12{
13 class ScalarSimulation;
14};
15
17{
19 {
20 ColMajorMatrixtype mtr;
21 Eigen::ArrayXXd kla;
22 Eigen::ArrayXd Henry;
23 double db;
24 };
25
26 namespace Impl
27 {
28
30 const Eigen::ArrayXXd& liquid_concentration,
31 const Eigen::ArrayXXd& gas_concentration,
32 const Eigen::MatrixXd& liquid_volume,
33 const CmaUtils::IterationState& state);
34
36 const Eigen::ArrayXXd& liquid_concentration,
37 const Eigen::ArrayXXd& gas_concentration,
38 const Eigen::MatrixXd& liquid_volume,
39 const CmaUtils::IterationState& state);
40
41 }; // namespace Impl
42
43 struct KlFonctor
44 {
45 double operator()(double kl);
46 Eigen::ArrayXXd operator()(const Eigen::ArrayXd& energy_dissipation_array,
47 const Eigen::ArrayXd& diffusion);
48 double operator()(double kla, bool _a);
49 };
50
52 {
53 double operator()()
54 {
55 return 1;
56 }
57 double operator()(double a);
58 Eigen::ArrayXXd operator()(const Eigen::ArrayXd& a);
59 Eigen::ArrayXXd operator()(double diameter, const Eigen::ArrayXd& a);
60 };
61
63 {
64 double operator()(double cstar);
65 Eigen::ArrayXXd operator()(const Eigen::ArrayXXd& cstar);
66 Eigen::ArrayXXd operator()(const Eigen::ArrayXXd& henry, bool _henry);
67 };
68
69} // namespace Simulation::MassTransfer
70
71#endif //__SIMULATION_HYDRO_MASS_TRANSFER_HPP__ __SIM_HYDRO_MASS_TRANSFER__
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:84
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:115
Definition impl_mass_transfer.hpp:17
Namespace that contains classes and structures related to simulation handling.
Definition host_specific.hpp:12
Structure to store information about the reactor state during simulation.
Definition iteration_state.hpp:21
Definition impl_mass_transfer.hpp:63
Eigen::ArrayXXd operator()(const Eigen::ArrayXXd &cstar)
Eigen::ArrayXXd operator()(const Eigen::ArrayXXd &henry, bool _henry)
Definition impl_mass_transfer.hpp:52
Eigen::ArrayXXd operator()(const Eigen::ArrayXd &a)
Eigen::ArrayXXd operator()(double diameter, const Eigen::ArrayXd &a)
double operator()()
Definition impl_mass_transfer.hpp:53
Definition impl_mass_transfer.hpp:44
Eigen::ArrayXXd operator()(const Eigen::ArrayXd &energy_dissipation_array, const Eigen::ArrayXd &diffusion)
double operator()(double kla, bool _a)
Definition impl_mass_transfer.hpp:19
double db
Definition impl_mass_transfer.hpp:23
Eigen::ArrayXd Henry
Definition impl_mass_transfer.hpp:22
Eigen::ArrayXXd kla
Definition impl_mass_transfer.hpp:21
ColMajorMatrixtype mtr
Definition impl_mass_transfer.hpp:20