ODT
Loading...
Searching...
No Matches
domaincase_odt_RT.cc
Go to the documentation of this file.
1
6#include "domaincase_odt_RT.h"
7#include "domain.h"
8#include "dv.h"
9#include "dv_pos.h"
10#include "dv_posf.h"
11#include "dv_rho_mf.h"
12#include "dv_dvisc_const.h"
13#include "dv_uvw.h"
14#include "dv_mixf.h"
15
16#include <cmath>
17#include <string>
18
20
27
28 domn = p_domn;
29
30 domn->v.push_back(new dv_pos( domn, "pos", false, true )); // last are: L_transported, L_output
31 domn->v.push_back(new dv_posf( domn, "posf", false, true ));
32 domn->v.push_back(new dv_uvw( domn, "uvel", true, true ));
33 domn->v.push_back(new dv_uvw( domn, "vvel", true, true ));
34 domn->v.push_back(new dv_uvw( domn, "wvel", true, true ));
35 domn->v.push_back(new dv_mixf( domn, "mixf", true, true ));
36 domn->v.push_back(new dv_rho_mf( domn, "rho", false, true ));
37 domn->v.push_back(new dv_dvisc_const( domn, "dvisc", false, false ));
38
39 int ii = 0;
40 domn->pos = domn->v.at(ii++);
41 domn->posf = domn->v.at(ii++);
42 domn->uvel = domn->v.at(ii++);
43 domn->vvel = domn->v.at(ii++);
44 domn->wvel = domn->v.at(ii++);
45 domn->mixf = domn->v.at(ii++);
46 domn->rho = domn->v.at(ii++);
47 domn->dvisc = domn->v.at(ii++);
48
49 //------------------- set variables used for mesh adaption
50
51 vector<dv*> phi;
52 phi.push_back(domn->uvel);
53 phi.push_back(domn->mixf);
54 domn->mesher->init(domn, phi);
55
56 //------------------- set profiles
57
58 double Zcent = domn->io->initParams["Zcent"].as<double>();
59 double Ztran = domn->io->initParams["Ztran"].as<double>();
60
61 Zcent += 0.5*(domn->posf->d.at(0)+domn->posf->d.at(domn->ngrd)); // Zcent=dist from center --> dist from left
62
63 for(int i=0; i<domn->ngrd; i++)
64 domn->mixf->d.at(i) = 0.5*(1.0+tanh(2.0/Ztran*(domn->pos->d.at(i)-Zcent)));
65 // domn->mixf->d.at(i) = (domn->pos->d.at(i) >= 0.5*(domn->pos->d[0]+domn->pos->d[domn->ngrd-1])) ? 1.0 : 0.0;
66
67 //--------------------
68
69 domn->rho->setVar();
70 domn->dvisc->setVar();
71
72 //-------------------
73
74 if(domn->pram->Lsolver!="EXPLICIT") {
75 cout << "\nError Lsolver should be EXPLICIT for this case (no rxn sources)" << endl;
76 exit(0);
77 }
78
79}
80
82
90
91
int ngrd
number of grid cells
Definition domain.h:42
dv * uvel
Definition domain.h:51
dv * posf
access as: posf->d[i], or posf->var_name, etc.
Definition domain.h:48
dv * vvel
Definition domain.h:52
dv * wvel
Definition domain.h:53
dv * pos
pointers to gas properties
Definition domain.h:47
meshManager * mesher
pointer to mesh manager object
Definition domain.h:78
inputoutput * io
pointer to input/output object
Definition domain.h:72
dv * dvisc
Definition domain.h:50
dv * mixf
Definition domain.h:59
vector< dv * > v
All domain variables are stored in here.
Definition domain.h:45
param * pram
pointer to the parameters object
Definition domain.h:73
dv * rho
Definition domain.h:49
virtual void init(domain *p_domn)
virtual void setCaseSpecificVars()
domain * domn
pointer to domain object (parent)
Definition domaincase.h:28
vector< double > d
the data
Definition dv.h:30
virtual void setVar(const int ipt=-1)
Definition dv.h:44
YAML::Node initParams
yaml sub node
Definition inputoutput.h:42
void init(domain *p_domn, const vector< dv * > p_phi)
string Lsolver
EXPLICIT, SEMI-IMPLICIT, or STRANG.
Definition param.h:60
Header file for class domain.
Header file for class domaincase_odt_RT.
Header file for class dv.
Header file for class dv_dvisc_const.
Header file for class dv_mixf.
Header file for class dv_pos.
Header file for class dv_posf.
Header file for class dv_rho_mf.
Header file for class dv_uvw.