26 eddl3->
init(NULL,NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
true);
98 while(time <= domn->pram->tEnd) {
142 ss1.clear(); ss1 << setfill(
'0') << setw(4) <<
neddies; ss1 >> s1;
198 double dxmin = 1.0E10;
223 *
domn->
io->
ostrm << endl <<
"# Catching up diffusion to eddies: time = " <<
time;
245 if(PaSum < domn->pram->Pav) {
258 *
domn->
io->
ostrm << endl <<
"# reset iEtrials, PaSumC, nPaSumC after "
294 if(iEnd - iStart < domn->pram->eddyMinCells)
330 if(rnd <= domn->ed->Pa) {
353 vector<double> dxc_or_rhoUdxc(
domn->
ngrd);
424 double L0 = 0.028323;
427 if(eSize > integralLength)
449 for(
int third=0; third<3; third++) {
466 leftThird = rightThird;
int ngrd
number of grid cells
domain * eddl
pointer to eddyline object
int domainPositionToIndex(double position, const bool LowSide, int dbg)
void init(inputoutput *p_io, meshManager *p_mesher, streams *p_strm, IdealGasPhase *p_gas, Transport *p_tran, micromixer *p_mimx, eddy *p_ed, domain *p_eddl, solver *p_solv, randomGenerator *p_rand, bool LisEddyDomain=false)
dv * posf
access as: posf->d[i], or posf->var_name, etc.
double cyclePeriodicDomain(const int icycle)
void setDomainFromRegion(const int i1, const int i2)
int ngrdf
number of grid cell faces = ngrd+1
void backCyclePeriodicDomain(const double backCycleDistance)
meshManager * mesher
pointer to mesh manager object
inputoutput * io
pointer to input/output object
eddy * ed
pointer to object for eddy operations
micromixer * mimx
pointer to micromixer for diffusion, reaction, domain evolution.
param * pram
pointer to the parameters object
vector< double > d
the data
bool LperiodicEddy
a wrap-around eddy
double Pa
eddy acceptance probability
double rightEdge
right edge location of eddy
void init(domain *p_domn, domain *p_eddl)
void applyVelocityKernels(domain *line, const int iS, const int iE)
void computeEddyAcceptanceProb(const double dtSample)
double invTauEddy
inverse eddy timescale
double eddySize
size of eddy
double leftEdge
left edge location of eddy
bool eddyTau(const double Z_value, const double C)
void tripMap(domain *line, const int iS, int iE, const double C, const bool LsplitAtEddy=false)
void sampleEddyPosition()
void adaptEddyRegionOfMesh(const double &time, double &tLastDA, int &cLastDA)
void setGridFromDxc(const vector< double > &dxc2)
void setGridDxc(const domain *line, vector< double > &dxc, double C)
void adaptGrid(int iLower, int iUpper)
void adaptAfterSufficientDiffTime(const double &time, double &tLastDA, int &cLastDA, double &dtCUmax)
virtual void advanceOdt(const double p_tstart, const double p_tend, const int iLevel=-1)
int nDtSmeanWait
number of eddy samples before increase dtSmean
int cCoord
1 = planar, 2 = cylindrical, 3 = spherical
int eddyMinCells
eddy must overlap at least this many cells
bool Lspatial
spatial formulation if true
double trst
restart time (from restart file), default is 0.0;
int modDump
accepted eddies before output file
double Z_param
Viscous penalty parameter.
double Pmax
maximum eddy acceptance probability
string LES_type
NONE, THIRDS, ELAPSEDTIME, FRACDOMAIN, INTEGRALSCALE.
int modDisp
frequency to display results (# eddies)
double dtfac
maximum factor to increase dtSmean
double Z_LES
large eddy suppression (nonpositive prevents les test)
double x0virtual
LES virtual origin.
double Pav
Average acceptance probability.
bool LplanarTau
true for computing cylindrical/spherical tau_eddy using a planar formulation. If accepted,...
double kvisc0
initial uniform kinematic viscosity (m^2/s)
double tdfac
factor between dtCUmax and dtCFL for temporal flows; DEFAULT = 1.0
double tEnd
ending time of realization
bool testLES_fracDomain(const double eSize)
virtual void init(domain *p_domn)
double PaSumC
sum of Pa of eddies
domain * eddl3
pointer to eddy line object
int nPaSum
number going into PaSum
bool sampleEddyAndImplementIfAccepted()
bool LeddyAccepted
flag for accepted eddy
int neddies
number of eddies accepted
virtual void calculateSolution()
double t0
time of last eddy event; diffusion left off here.
bool testLES_elapsedTime(const double time, const double tauEddy)
double dtCUmax
max time before catch up diff/eddy
domain * domn
pointer to domain object
bool testLES_integralLength(const double time, const double eSize)
double dtSmean
initial mean eddy sample time
double time
odt time (during sampling)
int iEtrials
number of eddy trials
eddy * ed3
pointer to eddy object for thirds
double PaSum
sum of Pa of eddies
void diffusionCatchUpIfNeeded(bool Ldoit=false)
int nPaSumC
number going into PaSum
Header file for class domain.
Header file for class solver.