Ion Model

class ScaLBL_IonModel
#include <IonModel.h>

Public Functions

double CalIonDenConvergence(vector<double> &ci_avg_previous)
void Checkpoint()
void Create()
void DummyElectricField()
void DummyFluidVelocity()
void getIonConcentration(DoubleArray &IonConcentration, const size_t ic)
void getIonConcentration_debug(int timestep)
void getIonFluxAdvective(DoubleArray &IonFlux_x, DoubleArray &IonFlux_y, DoubleArray &IonFlux_z, const size_t ic)
void getIonFluxAdvective_debug(int timestep)
void getIonFluxDiffusive(DoubleArray &IonFlux_x, DoubleArray &IonFlux_y, DoubleArray &IonFlux_z, const size_t ic)
void getIonFluxDiffusive_debug(int timestep)
void getIonFluxElectrical(DoubleArray &IonFlux_x, DoubleArray &IonFlux_y, DoubleArray &IonFlux_z, const size_t ic)
void getIonFluxElectrical_debug(int timestep)
void Initialize()
void ReadInput()
void ReadParams(string filename, vector<int> &num_iter)
void ReadParams(string filename)
void ReadParams(std::shared_ptr<Database> db0)
void Run(double *Velocity, double *ElectricField)
void RunMembrane(double *Velocity, double *ElectricField, double *Psi)
ScaLBL_IonModel(int RANK, int NP, const Utilities::MPI &COMM)
void SetDomain()
void SetMembrane()
~ScaLBL_IonModel()

Public Members

vector<int> BoundaryConditionInlet
vector<int> BoundaryConditionOutlet
int BoundaryConditionSolid
double *ChargeDensity
double *Ci
vector<double> Cin
vector<double> Cout
std::shared_ptr<Database> db
DoubleArray Distance
std::shared_ptr<Domain> Dm
std::shared_ptr<Database> domain_db
int *dvcMap
double *ElectricFieldDummy
double electron_charge
double Ex_dummy
double Ey_dummy
double Ez_dummy
double *FluidVelocityDummy
double fluidVelx_dummy
double fluidVely_dummy
double fluidVelz_dummy
double *FluxAdvective
double *FluxDiffusive
double *FluxElectrical
double *fq
double h
std::shared_ptr<Database> ion_db
vector<double> IonConcentration
vector<double> IonDiffusivity
std::shared_ptr<Membrane> IonMembrane
double *IonSolid
vector<int> IonValence
double k2_inv
double kb
double Lx
double Ly
double Lz
IntArray Map
std::shared_ptr<Domain> Mask
vector<double> MassFractionIn
vector<double> MassFractionOut
std::shared_ptr<Database> membrane_db
int MembraneCount
DoubleArray MembraneDistance
vector<double> MembraneIonConcentration
int N
int *NeighborList
int Np
int nprocs
int nprocx
int nprocy
int nprocz
size_t number_ion_species
int Nx
int Ny
int Nz
int rank
bool Restart
std::shared_ptr<ScaLBL_Communicator> ScaLBL_Comm
double T
vector<double> tau
vector<double> ThresholdMassFractionIn
vector<double> ThresholdMassFractionOut
vector<double> ThresholdVoltage
vector<double> time_conv
int timestep
vector<int> timestepMax
double tolerance
bool USE_MEMBRANE
double Vt

Private Functions

void AssignIonConcentration_FromFile(double *Ci, const vector<std::string> &File_ion, int ic)
void AssignIonConcentrationMembrane(double *Ci, int ic)
void AssignSolidBoundary(double *ion_solid)
void IonConcentration_LB_to_Phys(DoubleArray &Den_reg)
void IonFlux_LB_to_Phys(DoubleArray &Den_reg, const size_t ic)
void LoadParams(std::shared_ptr<Database> db0)

Private Members

Utilities::MPI comm
char LocalRankFilename[40]
char LocalRankString[8]
char LocalRestartFile[40]
char OutputFilename[200]