2020-12-26 14:00:17 -05:00
|
|
|
/*
|
2020-12-29 14:04:43 -05:00
|
|
|
* averaging tools for electrochemistry
|
2020-12-26 14:00:17 -05:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#ifndef ElectroChem_INC
|
|
|
|
|
#define ElectroChem_INC
|
|
|
|
|
|
|
|
|
|
#include <vector>
|
|
|
|
|
#include "common/Domain.h"
|
|
|
|
|
#include "common/Communication.h"
|
|
|
|
|
#include "analysis/analysis.h"
|
|
|
|
|
#include "analysis/distance.h"
|
|
|
|
|
#include "analysis/Minkowski.h"
|
|
|
|
|
#include "common/Utilities.h"
|
|
|
|
|
#include "common/MPI_Helpers.h"
|
|
|
|
|
#include "IO/MeshDatabase.h"
|
|
|
|
|
#include "IO/Reader.h"
|
|
|
|
|
#include "IO/Writer.h"
|
2020-12-29 14:04:43 -05:00
|
|
|
#include "models/IonModel.h"
|
|
|
|
|
#include "models/PoissonSolver.h"
|
|
|
|
|
#include "models/StokesModel.h"
|
2020-12-26 14:00:17 -05:00
|
|
|
|
|
|
|
|
class ElectroChemistryAnalyzer{
|
|
|
|
|
public:
|
2020-12-29 14:04:43 -05:00
|
|
|
MPI_Comm comm;
|
|
|
|
|
int tag;
|
2020-12-26 14:00:17 -05:00
|
|
|
std::shared_ptr <Domain> Dm;
|
|
|
|
|
double Volume;
|
|
|
|
|
// input variables
|
|
|
|
|
double rho_n, rho_w;
|
|
|
|
|
double nu_n, nu_w;
|
|
|
|
|
double gamma_wn, beta;
|
|
|
|
|
double Fx, Fy, Fz;
|
|
|
|
|
|
|
|
|
|
//...........................................................................
|
|
|
|
|
int Nx,Ny,Nz;
|
|
|
|
|
DoubleArray Rho; // density field
|
|
|
|
|
DoubleArray ChemicalPotential; // density field
|
|
|
|
|
DoubleArray ElectricalPotential; // density field
|
|
|
|
|
DoubleArray Pressure; // pressure field
|
|
|
|
|
DoubleArray Vel_x; // velocity field
|
|
|
|
|
DoubleArray Vel_y;
|
|
|
|
|
DoubleArray Vel_z;
|
|
|
|
|
DoubleArray SDs;
|
|
|
|
|
|
|
|
|
|
ElectroChemistryAnalyzer(std::shared_ptr <Domain> Dm);
|
|
|
|
|
~ElectroChemistryAnalyzer();
|
|
|
|
|
|
|
|
|
|
void SetParams();
|
2020-12-29 14:04:43 -05:00
|
|
|
void Basic( ScaLBL_IonModel &Ion, ScaLBL_Poisson &Poisson, ScaLBL_StokesModel &Stokes);
|
|
|
|
|
void WriteVis( ScaLBL_IonModel &Ion, ScaLBL_Poisson &Poisson, ScaLBL_StokesModel &Stokes, std::shared_ptr<Database> input_db, int timestep);
|
2020-12-26 14:00:17 -05:00
|
|
|
|
|
|
|
|
private:
|
2020-12-29 14:04:43 -05:00
|
|
|
std::vector<IO::MeshDataStruct> visData;
|
|
|
|
|
fillHalo<double> fillData;
|
2020-12-26 14:00:17 -05:00
|
|
|
FILE *TIMELOG;
|
2020-12-26 20:26:27 -05:00
|
|
|
};
|
2020-12-26 14:00:17 -05:00
|
|
|
#endif
|
|
|
|
|
|