ODT
Loading...
Searching...
No Matches
domaincase_odt_MFjetFlame.cc
Go to the documentation of this file.
1
7#include "domain.h"
8#include "dv.h"
9#include "dv_pos.h"
10#include "dv_posf.h"
11/* customize the mixture fraction profile here */
12#include "dv_rho_mf.h"
13#include "dv_dvisc_const.h"
14#include "dv_uvw.h"
15#include "dv_mixf.h"
16#include "dv_chi_dmf.h"
17
18#include "interp_linear.h"
19
20#include <cmath>
21#include <string>
22
24
31
32 domn = p_domn;
33
34 domn->v.push_back(new dv_pos( domn, "pos", false, true )); // last are: L_transported, L_output
35 domn->v.push_back(new dv_posf( domn, "posf", false, 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 domn->v.push_back(new dv_uvw( domn, "uvel", true, true ));
39 domn->v.push_back(new dv_uvw( domn, "vvel", true, true ));
40 domn->v.push_back(new dv_uvw( domn, "wvel", true, true ));
41 domn->v.push_back(new dv_mixf( domn, "mixf", true, true ));
42 domn->v.push_back(new dv_chi_dmf( domn, "chi", false, true ));
43
44 int ii = 0;
45 domn->pos = domn->v.at(ii++);
46 domn->posf = domn->v.at(ii++);
47 domn->rho = domn->v.at(ii++);
48 domn->dvisc = domn->v.at(ii++);
49 domn->uvel = domn->v.at(ii++);
50 domn->vvel = domn->v.at(ii++);
51 domn->wvel = domn->v.at(ii++);
52 domn->mixf = domn->v.at(ii++);
53 domn->chi = domn->v.at(ii++);
54
55 //------------------- set variables used for mesh adaption
56
57 vector<dv*> phi;
58 phi.push_back(domn->uvel);
59 phi.push_back(domn->mixf);
60 domn->mesher->init(domn, phi);
61
62 //------------------- set profiles
63
64 double d_f = domn->io->initParams["d_f"].as<double>();
65 double d_p = domn->io->initParams["d_p"].as<double>();
66 double Z_p = domn->io->initParams["Z_p"].as<double>();
67 double dTrans = domn->io->initParams["dTrans"].as<double>();
68 double U_f = domn->io->initParams["U_f"].as<double>();
69 double U_p = domn->io->initParams["U_p"].as<double>();
70 double U_a = domn->io->initParams["U_a"].as<double>();
71
72 //--------------------
73
74 double r_f = d_f/2.0;
75 double r_p = d_p/2.0;
76 double p1; // dummy for setting profiles
77 double p2; // dummy for setting profiles
78
79 for(int i=0; i<domn->ngrd; i++){
80 p1 = 0.5*(1.0+tanh(2.0/dTrans*(domn->pos->d.at(i)+r_f))) *
81 0.5*(1.0+tanh(2.0/dTrans*(r_f-domn->pos->d.at(i))));
82 p2 = 0.5*(1.0+tanh(2.0/dTrans*(domn->pos->d.at(i)+r_p))) *
83 0.5*(1.0+tanh(2.0/dTrans*(r_p-domn->pos->d.at(i))));
84 domn->mixf->d.at(i) = p1*(1.0-Z_p) + p2*Z_p;
85 if(U_f > 0)
86 domn->uvel->d.at(i) = p1*(U_f-U_p-U_a) + p2*(U_p-U_a) + U_a;
87 }
88
89 if(U_f < 0) {
90 vector<double> xprof, uprof;
91 for(int i=0; i<domn->io->initParams["vprof"].size(); i++){
92 xprof.push_back(domn->io->initParams["vprof"][i][0].as<double>());
93 uprof.push_back(domn->io->initParams["vprof"][i][1].as<double>());
94 }
95 Linear_interp Linterp(xprof, uprof);
96 for(int i=0; i<domn->ngrd; i++)
97 domn->uvel->d.at(i) = Linterp.interp(domn->pos->d.at(i));
98 }
99
100 //--------------------
101
102 domn->rho->setVar();
103 domn->dvisc->setVar();
104
105 if(domn->pram->Lsolver!="EXPLICIT") {
106 cout << "\nError Lsolver should be EXPLICIT for this case (no rxn sources)" << endl;
107 exit(0);
108 }
109
110}
111
113
119
120}
121
123
134
136
double interp(double x)
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
dv * chi
Definition domain.h:60
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 setGasStateAtPt(const int &ipt)
virtual void setCaseSpecificVars_cvode(const int &ipt)
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_MFjetFlame.
Header file for class dv.
Header file for class dv_chi_dmf – uses constant Dmf for computing chi.
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.