Poisson Model

Defines

_USE_MATH_DEFINES
ScaLBL_POISSON_INC
class ScaLBL_Poisson
#include <PoissonSolver.h>

Public Functions

void Checkpoint()
void Create()
void DummyChargeDensity()
void getElectricField(DoubleArray &Values_x, DoubleArray &Values_y, DoubleArray &Values_z)
void getElectricField_debug(int timestep)
void getElectricPotential(DoubleArray &ReturnValues)
void getElectricPotential_debug(int timestep)
void Initialize(double time_conv_from_Study)
void ReadInput()
void ReadParams(string filename)
void ReadParams(std::shared_ptr<Database> db0)
void Run(double *ChargeDensity, bool UseSlippingVelBC, int timestep_from_Study)
void Run(double *ChargeDensity, DoubleArray MembraneDistance, bool UseSlippingVelBC, int timestep_from_Study)
ScaLBL_Poisson(int RANK, int NP, const Utilities::MPI &COMM)
void SetDomain()
~ScaLBL_Poisson()

Public Members

int analysis_interval
int BoundaryConditionInlet
int BoundaryConditionOutlet
vector<int> BoundaryConditionSolidList
double chargeDen_dummy
double *ChargeDensityDummy
std::shared_ptr<Database> db
DoubleArray Distance
std::shared_ptr<Domain> Dm
std::shared_ptr<Database> domain_db
int *dvcMap
std::shared_ptr<Database> electric_db
double *ElectricField
double epsilon0
double epsilon0_LB
double epsilon_LB
double epsilonR
double *fq
double freqIn
double freqOut
double h
double k2_inv
std::string lattice_scheme
double Lx
double Ly
double Lz
IntArray Map
std::shared_ptr<Domain> Mask
int N
int *NeighborList
int Np
int nprocs
int nprocx
int nprocy
int nprocz
int Nx
int Ny
int Nz
double PhaseShift_In
double PhaseShift_Out
double *Psi
int *Psi_BCLabel
DoubleArray Psi_host
DoubleArray Psi_previous
int rank
double *ResidualError
bool Restart
std::shared_ptr<ScaLBL_Communicator> ScaLBL_Comm
std::shared_ptr<ScaLBL_Communicator> ScaLBL_Comm_Regular
double t0_In
double t0_Out
double tau
bool TestPeriodic
double TestPeriodicSaveInterval
double TestPeriodicTime
double TestPeriodicTimeConv
double time_conv
int timestep
int timestepMax
double tolerance
std::string tolerance_method
double Vin
double Vin0
double Vout
double Vout0
bool WriteLog

Private Functions

void AssignSolidBoundary(double *poisson_solid, int *poisson_solid_label)
void ElectricField_LB_to_Phys(DoubleArray &Efield_reg)
double getBoundaryVoltagefromPeriodicBC(double V0, double freq, double t0, int time_step)
void getConvergenceLog(int timestep, double error)
void LoadParams(std::shared_ptr<Database> db0)
void Potential_Init(double *psi_init)
void SolveElectricPotentialAAeven(int timestep_from_Study)
void SolveElectricPotentialAAodd(int timestep_from_Study)
void SolvePoissonAAeven(double *ChargeDensity, bool UseSlippingVelBC)
void SolvePoissonAAodd(double *ChargeDensity, bool UseSlippingVelBC)

Private Members

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