ODT
Loading...
Searching...
No Matches
domaincase_odt_coldJet.cc
Go to the documentation of this file.
1
8#include "domain.h"
9#include "dv.h"
10#include "dv_pos.h"
11#include "dv_posf.h"
12#include "dv_rho_const.h"
13#include "dv_dvisc_const.h"
14#include "dv_uvw.h"
15#include "dv_ygas_noRxn.h"
16#include "dv_mixf.h"
17#include "dv_chi.h"
18#include "dv_aDL.h"
19
20#include "interp_linear.h"
21
22#include <cmath>
23#include <string>
24
26
33
34 domn = p_domn;
35
36 domn->v.push_back(new dv_pos( domn, "pos", false, true )); // last are: L_transported, L_output
37 domn->v.push_back(new dv_posf( domn, "posf", false, true ));
38 domn->v.push_back(new dv_rho_const( domn, "rho", false, true ));
39 domn->v.push_back(new dv_dvisc_const( domn, "dvisc", false, true ));
40 domn->v.push_back(new dv_uvw( domn, "uvel", true, true ));
41 domn->v.push_back(new dv_uvw( domn, "vvel", true, true ));
42 domn->v.push_back(new dv_uvw( domn, "wvel", true, 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
53 //------------------- set variables used for mesh adaption
54
55 vector<dv*> phi;
56 phi.push_back(domn->uvel);
57 domn->mesher->init(domn, phi);
58
59 //------------------- set profiles
60
61 double djeti = domn->io->initParams["djeti"].as<double>();
62 double vel_min = domn->io->initParams["vel_min"].as<double>();
63 double vel_max = domn->io->initParams["vel_max"].as<double>();
64 double delta_vel = domn->io->initParams["delta_vel"].as<double>();
65 double vel_diff = vel_max - vel_min;
66
67 if(djeti >= 0.0){
68 double vyc1 = -0.5*djeti;
69 double vyc2 = 0.5*djeti;
70 for(int i=0; i<domn->ngrd; i++){
71 domn->uvel->d.at(i) = vel_diff * 0.5 * (1.0 + tanh(2.0 / delta_vel * (domn->pos->d.at(i) - vyc1))) *
72 0.5 * (1.0 + tanh(2.0 / delta_vel * (vyc2 - domn->pos->d.at(i)))) + vel_min;
73
74 //domn->uvel->d.at(i) = 10.0 + 1.0*domn->pos->d.at(i); //doldb
75 }
76 }
77
78 //--------- hack in a vprof profile
79
80 else {
81 vector<double> xprof, uprof;
82 for(int i=0; i<domn->io->initParams["vprof"].size(); i++){
83 xprof.push_back(domn->io->initParams["vprof"][i][0].as<double>());
84 uprof.push_back(domn->io->initParams["vprof"][i][1].as<double>());
85 }
86 Linear_interp Linterp(xprof, uprof);
87 for(int i=0; i<domn->ngrd; i++)
88 domn->uvel->d.at(i) = Linterp.interp(domn->pos->d.at(i));
89 }
90
91 //--------------------
92
93 domn->rho->setVar();
94 domn->dvisc->setVar();
95
96 //-------------------
97
98 if(domn->pram->Lsolver!="EXPLICIT") {
99 cout << "\nError Lsolver needs to be EXPLICIT for this case (no rxn sources)" << endl;
100 exit(0);
101 }
102
103}
104
106
115
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
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)
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_coldJet.
Header file for class dv.
Header file for class dv_aDL.
Header file for class dv_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_const.
Header file for class dv_uvw.
Header file for class dv_ygas_noRxn.