ODT
|
#include <eddy.h>
Public Member Functions | |
void | sampleEddySize () |
void | sampleEddyPosition () |
void | tripMap (domain *line, const int iS, int iE, const double C, const bool LsplitAtEddy=false) |
bool | eddyTau (const double Z_value, const double C) |
void | computeEddyAcceptanceProb (const double dtSample) |
void | applyVelocityKernels (domain *line, const int iS, const int iE) |
eddy () | |
void | init (domain *p_domn, domain *p_eddl) |
~eddy () | |
Public Attributes | |
domain * | domn |
pointer to domain object | |
domain * | eddl |
pointer to eddy line object | |
double | eddySize |
size of eddy | |
double | leftEdge |
left edge location of eddy | |
double | rightEdge |
right edge location of eddy | |
double | invTauEddy |
inverse eddy timescale | |
double | Pa |
eddy acceptance probability | |
bool | LperiodicEddy |
a wrap-around eddy | |
vector< double > | cCoef |
coefficient of K kernel | |
vector< double > | bCoef |
coefficient of J kernel | |
vector< double > | K |
eddy kernel K | |
vector< double > | dxc |
\delta(x^cCoord) is prop. to cell "volume" | |
vector< double > | pos0 |
initial eddy cell locations, for kernel | |
double | esdp1 |
eddy size distribution parameters. | |
double | esdp2 |
double | esdp3 |
double | esdp4 |
vector< double > | cca |
vector< double > | ccb |
vector< double > | ccc |
vector< double > | ccd |
polynomial coefficient arrays for cylindricalAnomalyHack | |
Private Member Functions | |
void | fillKernel () |
void | fillKernel_planarAnalytic () |
double | eddyFavreAvgVelocity (const vector< double > &dxc) |
void | set_kernel_coefficients () |
|
private |
|
private |
void eddy::sampleEddyPosition | ( | ) |
Uniformly sample the eddy position on the domain. For periodic domains the position can be anywhere. For nonperiodic domains, the position is from 0 to the end where end is the domain size - the eddy size (since the eddy has to fit in the domain). This also means that the eddy position is the left edge of the eddy. For periodic domains, rightEdge is greater than leftEdge (even for eddies that wrap the domain, and may be outside the range of the base domain.)
void eddy::sampleEddySize | ( | ) |
|
private |
Compute the kernel coefficients. This used to be done in eddyTau, but to allow more flexibility, especially for cylindrical and spherical cases it is split off. Namely, for cylindrical and spherical, we evaluate a "planar" eddyTau so that a constant shear will give a uniform eddyTau with respect to position. But we need to evaluate the kernel coefficients using cylindrical or spherical so that we are conservative of momentum and energy.
void eddy::tripMap | ( | domain * | line, |
const int | iS, | ||
int | iE, | ||
const double | C, | ||
const bool | LsplitAtEddy = false ) |
Triplet map the domain This version will adjust the TM so that the three segments are spaced evenly in cylindrical and spherical flows. (planar = no difference). This can be converted back to the usual equal volume segments by making fracVleft = 1/3 etc.
line | input/output: either the domn or the eddl |
iS | input: starting cell |
iE | input: ending cell (Note, this could be done by the lv objects separately.) Applies to an eddy line, or the full odt line. |
vector<double> eddy::ccd |
vector<double> eddy::dxc |
vector<double> eddy::pos0 |