#include <solver.h>
|
domain * | domn |
| pointer to domain object
|
|
eddy * | ed3 |
| pointer to eddy object for thirds
|
|
domain * | eddl3 |
| pointer to eddy line object
|
|
double | time |
| odt time (during sampling)
|
|
double | t0 |
| time of last eddy event; diffusion left off here.
|
|
double | dtSmean |
| initial mean eddy sample time
|
|
double | dtCUmax |
| max time before catch up diff/eddy
|
|
bool | LeddyAccepted |
| flag for accepted eddy
|
|
int | iEtrials |
| number of eddy trials
|
|
double | PaSum |
| sum of Pa of eddies
|
|
int | nPaSum |
| number going into PaSum
|
|
int | neddies |
| number of eddies accepted
|
|
double | PaSumC |
| sum of Pa of eddies
|
|
int | nPaSumC |
| number going into PaSum
|
|
Class implementing solver object
- Author
- David O. Lignell
Definition at line 21 of file solver.h.
◆ solver()
◆ ~solver()
◆ calculateSolution()
void solver::calculateSolution |
( |
| ) |
|
|
virtual |
The actual solver
Advance in time only sampling eddies till get one (EE). Then diffuse the system until you catch up to the eddy time:
last EE this EE diffuse to catch up
.....|..........| ----------------------> ................|
t0 time t0,time
(last EE) this EE next EE
Then advance some more ......;.........|................| etc.
t0 time
Eddy timesteps are smaller than required diffusive steps, so if we were to lock-step the two processes we would do too much diffusive work (i.e., take more diffusive steps than needed)
< time of last diffusive mesh adaption
< for adaption
Definition at line 60 of file solver.cc.
◆ computeDtCUmax()
void solver::computeDtCUmax |
( |
| ) |
|
|
private |
Computes dtCUmax (as the name suggests). This variable is the time increment of eddy trial time advancement before we diffuse to catch up to that time in the event of no eddy before that time.
Definition at line 196 of file solver.cc.
◆ computeDtSmean()
void solver::computeDtSmean |
( |
| ) |
|
|
private |
dtSmean is computed, which is the mean eddy sample time. The Poisson process draws dt's with this mean.
Definition at line 169 of file solver.cc.
◆ diffusionCatchUpIfNeeded()
void solver::diffusionCatchUpIfNeeded |
( |
bool | Ldoit = false | ) |
|
|
private |
Diffuse the domain to catch up t0 to time if we have not had eddies for a while.
- Parameters
-
Ldoit | input: Flag with default false |
Definition at line 217 of file solver.cc.
◆ init()
void solver::init |
( |
domain * | p_domn | ) |
|
|
virtual |
solver initialization function
- Parameters
-
p_domn | input: set domain pointer with. |
Definition at line 19 of file solver.cc.
◆ lowerDtSmean()
void solver::lowerDtSmean |
( |
| ) |
|
|
private |
Reduce dtSmean if it is resulting in too high an acceptance probability.
Definition at line 478 of file solver.cc.
◆ raiseDtSmean()
void solver::raiseDtSmean |
( |
| ) |
|
|
private |
Every once in a while (nDtSmeanWait) test the mean acceptance probability. Increase dtSmean if its too small.
Definition at line 237 of file solver.cc.
◆ sampleDt()
double solver::sampleDt |
( |
| ) |
|
|
private |
Sample the eddy trial time step with mean dtSmean.
- Returns
- Poisson sampled timestep.
Definition at line 184 of file solver.cc.
◆ sampleEddyAndImplementIfAccepted()
bool solver::sampleEddyAndImplementIfAccepted |
( |
| ) |
|
|
private |
Sample an eddy size and position. Fill the eddl from domn. Then triplet map the eddy, compute the eddy timescale, then the acceptance probability. Roll the dice and if you win (rand # < prob) then accept the eddy. This means, apply velocity kernels, then insert the eddl into the domn. Note, this function may be better as a member of eddy
- Returns
- true if the sampled eddy was implemented.
Definition at line 278 of file solver.cc.
◆ testLES_elapsedTime()
bool solver::testLES_elapsedTime |
( |
const double | time, |
|
|
const double | tauEddy ) |
|
private |
Apply a large eddy suppression test based on elapsed time (Echekki 2001)
- Parameters
-
time | input: current time. |
tauEddy | input: eddy timescale, or in spatial cases, the eddy size Note, this function may be better as a member of eddy |
Definition at line 382 of file solver.cc.
◆ testLES_fracDomain()
bool solver::testLES_fracDomain |
( |
const double | eSize | ) |
|
|
private |
Large eddy suppression test on fraction of domain size
- Parameters
-
eSize | input: eddy size Note, this function may be better as a member of eddy |
Definition at line 398 of file solver.cc.
◆ testLES_integralLength()
bool solver::testLES_integralLength |
( |
const double | time, |
|
|
const double | eSize ) |
|
private |
Apply a large eddy suppression test based on integral length scale integral length scale L = L0 * (t/t0)^(1-n/2) t is elapsed time; n is between 1.15 and 1.45, usually 1.3
- Parameters
-
time | input: current time. |
eSize | input: eddy size Guangyuan Sun 06/2013 Note, this function may be better as a member of eddy |
Definition at line 417 of file solver.cc.
◆ testLES_thirds()
bool solver::testLES_thirds |
( |
| ) |
|
|
private |
Apply the large-eddy suppression test. Note, this function may be better as a member of eddy
Definition at line 437 of file solver.cc.
◆ domn
pointer to domain object
Definition at line 28 of file solver.h.
◆ dtCUmax
max time before catch up diff/eddy
Definition at line 36 of file solver.h.
◆ dtSmean
initial mean eddy sample time
Definition at line 35 of file solver.h.
◆ ed3
pointer to eddy object for thirds
Definition at line 30 of file solver.h.
◆ eddl3
pointer to eddy line object
Definition at line 31 of file solver.h.
◆ iEtrials
number of eddy trials
Definition at line 39 of file solver.h.
◆ LeddyAccepted
bool solver::LeddyAccepted |
flag for accepted eddy
Definition at line 38 of file solver.h.
◆ neddies
number of eddies accepted
Definition at line 43 of file solver.h.
◆ nPaSum
number going into PaSum
Definition at line 42 of file solver.h.
◆ nPaSumC
number going into PaSum
Definition at line 45 of file solver.h.
◆ PaSum
sum of Pa of eddies
Definition at line 41 of file solver.h.
◆ PaSumC
sum of Pa of eddies
Definition at line 44 of file solver.h.
◆ t0
time of last eddy event; diffusion left off here.
Definition at line 34 of file solver.h.
◆ time
odt time (during sampling)
Definition at line 33 of file solver.h.
The documentation for this class was generated from the following files: