Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 25 additions & 2 deletions src_MFsurfchem/MFsurfchem_functions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ AMREX_GPU_MANAGED amrex::Real MFsurfchem::e_beta;
AMREX_GPU_MANAGED int MFsurfchem::splitting_MFsurfchem;
AMREX_GPU_MANAGED int MFsurfchem::conversion_MFsurfchem;

AMREX_GPU_MANAGED int MFsurfchem::mean_MFsurfchem;
AMREX_GPU_MANAGED GpuArray<amrex::Real, MAX_SPECIES> MFsurfchem::mean_pressure;

void InitializeMFSurfchemNamespace()
{
// extract inputs parameters
Expand Down Expand Up @@ -87,6 +90,17 @@ void InitializeMFSurfchemNamespace()
if ( (n_ads_spec + conversion_MFsurfchem) > nspecies) {
Abort("ERROR: desorption species is not included in nspecies");
}

// Use equilibrium (mean) values of pressure and temperature to calculate adsorption rate
mean_MFsurfchem = 0; // default value
pp.query("mean_MFsurfchem",mean_MFsurfchem);
if (mean_MFsurfchem > 0) {
std::vector<amrex::Real> mean_pressure_tmp(MAX_SPECIES);
pp.queryarr("mean_pressure",mean_pressure_tmp,0,n_ads_spec); // mean partial pressure of adsorption species
for (int m=0;m<n_ads_spec;m++) {
mean_pressure[m] = mean_pressure_tmp[m];
}
}
return;
}

Expand Down Expand Up @@ -172,8 +186,17 @@ void sample_MFsurfchem(MultiFab& cu, MultiFab& prim, MultiFab& surfcov, MultiFab

amrex::Real theta = surfcov_arr(i,j,k,m);

amrex::Real meanNads = ads_rate_const[m]*pres*(1-sumtheta)*Ntot*dt*pow(tempratio,k_beta);
amrex::Real meanNdes = des_rate[m]*theta*Ntot*dt;
amrex::Real meanNads;
amrex::Real meanNdes;

if (mean_MFsurfchem==0) {
meanNads = ads_rate_const[m]*pres*(1-sumtheta)*Ntot*dt*pow(tempratio,k_beta);
meanNdes = des_rate[m]*theta*Ntot*dt;
}
else {
meanNads = ads_rate_const[m]*mean_pressure[m]*(1-sumtheta)*Ntot*dt; // tempratio = 1
meanNdes = des_rate[m]*theta*Ntot*dt;
}

amrex::Real Nads;
amrex::Real Ndes;
Expand Down
3 changes: 3 additions & 0 deletions src_MFsurfchem/MFsurfchem_namespace.H
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,7 @@ namespace MFsurfchem {
extern AMREX_GPU_MANAGED int splitting_MFsurfchem;
extern AMREX_GPU_MANAGED int conversion_MFsurfchem;

extern AMREX_GPU_MANAGED int mean_MFsurfchem;
extern AMREX_GPU_MANAGED GpuArray<amrex::Real, MAX_SPECIES> mean_pressure;

}
2 changes: 1 addition & 1 deletion src_compressible_stag/main_driver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1652,7 +1652,7 @@ void main_driver(const char* argv)
//
//

if (n_ads_spec > 0 && surfCov_has_multiple_cells) {
if (do_2D && n_ads_spec > 0 && surfCov_has_multiple_cells) {

MultiFab surfcov_mag, surfcov_realimag;

Expand Down
Loading