ODT
Loading...
Searching...
No Matches
micromixer.h
Go to the documentation of this file.
1
6#pragma once
7
8#include <vector>
9#include <string>
10#include "cvodeDriver.h"
11
12class domain;
13
14using namespace std;
15
17
24
25 public:
26
28
31
32 double tstart;
33 double time;
34 double tend;
36 double dt;
37
38 vector<double> dxc;
39 vector<double> dx;
40 vector<double> gf;
41
42 bool LdoDump;
43
44 vector<double> uDL_1;
45 vector<double> uDL_2;
46 vector<double> xDL_1;
47 vector<double> xDL_2;
48 vector<double> posDL_old;
49
50 vector<double> oldrho_or_rhov;
51
52 int nsteps;
53
55
56 virtual void advanceOdt(const double p_tstart, const double p_tend, const int iLevel = -1);
57
58 void check_balance(int io);
59
60 protected:
61
62 virtual void setGf();
63 virtual void setGridDxcDx();
64 virtual void set_oldrho_or_rhov();
65 virtual bool adaptGridIfNeeded();
66 virtual void setNominalStepSize();
67
68 void setStepSize();
69 void updateGrid();
70 void do_DL(string doWhat);
71
75
77
78
79
80
82
83 public:
84
85 micromixer();
86 void init(domain *p_domn);
87 virtual ~micromixer(){ delete cvode; }
88
89};
90
91
93
94
Class implementing micromixer object.
Definition micromixer.h:23
vector< double > xDL_2
for DL instability: = "new" cell center positions
Definition micromixer.h:47
virtual void advanceOdt(const double p_tstart, const double p_tend, const int iLevel=-1)
Definition micromixer.cc:41
void advanceOdtSingleStep_SemiImplicit()
vector< double > uDL_2
for DL instability: new velocity
Definition micromixer.h:45
double dtStepNominal
nominal step size
Definition micromixer.h:35
vector< double > dx
abs(\Delta(x))
Definition micromixer.h:39
vector< double > xDL_1
for DL instability: = "old" cell center positions
Definition micromixer.h:46
void advanceOdtSingleStep_StrangSplit()
vector< double > gf
grid factor for derivatives: (df/dx) = gf * (f - f)
Definition micromixer.h:40
bool LforceSetNominalStepSize
used in updateGrid when splitting cells to indicate to reset timestep size later
Definition micromixer.h:76
bool LdoDump
Definition micromixer.h:42
void check_balance(int io)
virtual void setGridDxcDx()
sets the dxc array
Definition micromixer.cc:71
vector< double > dxc
abs(\Delta(x^c))
Definition micromixer.h:38
void init(domain *p_domn)
Definition micromixer.cc:30
double tend
Definition micromixer.h:34
vector< double > posDL_old
for DL instability: = "new" cell center positions
Definition micromixer.h:48
double dt
actual step size (shortened based on output or tend)
Definition micromixer.h:36
void updateGrid()
enforce the continuity condition: (e.g., rho*dx = const).
virtual bool adaptGridIfNeeded()
expansion or contraction --> adapt
int nsteps
total number of timesteps taken during simulation
Definition micromixer.h:52
vector< double > uDL_1
for DL instability: old velocity
Definition micromixer.h:44
domain * domn
pointer to domain object
Definition micromixer.h:29
cvodeDriver * cvode
pointer to cvode driver object for implicit ODE integration (stiff)
Definition micromixer.h:30
virtual ~micromixer()
Definition micromixer.h:87
virtual void setGf()
sets the gf array
virtual void set_oldrho_or_rhov()
record old rho (or rho*u) for continuity
void advanceOdtSingleStep_Explicit()
void setStepSize()
set a local dt for interruptions (dump or tend)
void do_DL(string doWhat)
double tstart
Definition micromixer.h:32
double time
current time
Definition micromixer.h:33
virtual void setNominalStepSize()
sets a nominal dt for the whole period
Definition micromixer.cc:85
vector< double > oldrho_or_rhov
store the old density for continuity
Definition micromixer.h:50
Header file for class cvodeDriver.h.