159599516SKenneth E. Jansen #include <fstream>
259599516SKenneth E. Jansen #include <stdio.h>
359599516SKenneth E. Jansen #include <stdlib.h>
459599516SKenneth E. Jansen #include <vector>
559599516SKenneth E. Jansen #include <string>
659599516SKenneth E. Jansen //MR CHANGE
759599516SKenneth E. Jansen #include <cstring>
859599516SKenneth E. Jansen //MR CHANGE END
959599516SKenneth E. Jansen
1059599516SKenneth E. Jansen #include "Input.h"
1159599516SKenneth E. Jansen #include "common_c.h"
1259599516SKenneth E. Jansen
13513954efSKenneth E. Jansen #include <FCMangle.h>
14513954efSKenneth E. Jansen #define BC_setVars FortranCInterface_MODULE_(blowercontrol, bc_setvars, BLOWERCONTROL, BC_SETVARS)
15513954efSKenneth E. Jansen
1659599516SKenneth E. Jansen using namespace std; //::cout;
1759599516SKenneth E. Jansen void print_error_code(int ierr);
1859599516SKenneth E. Jansen int SONFATH=0;
1959599516SKenneth E. Jansen extern "C" char phasta_iotype[80];
20513954efSKenneth E. Jansen //extern "C"
21513954efSKenneth E. Jansen extern "C" void BC_setVars( int*, int*,
22513954efSKenneth E. Jansen int*, int*,
23513954efSKenneth E. Jansen double*, double*, double*,
24513954efSKenneth E. Jansen double*, double*, double*,
25513954efSKenneth E. Jansen double*, double*, double*,
26513954efSKenneth E. Jansen double* );
2759599516SKenneth E. Jansen
input_fform(phSolver::Input & inp)289ae91bddSCameron Smith int input_fform(phSolver::Input& inp)
2959599516SKenneth E. Jansen {
3059599516SKenneth E. Jansen
3159599516SKenneth E. Jansen int ierr = 0 ;
3217860365SKenneth E. Jansen int i,j, n_tmp;
3359599516SKenneth E. Jansen
3459599516SKenneth E. Jansen try {
3559599516SKenneth E. Jansen if(workfc.myrank==workfc.master) {
369ae91bddSCameron Smith printf("\n Complete Filename: %s \n", inp.GetDefaultFileName());
379ae91bddSCameron Smith printf("\n Local Config: %s \n\n", inp.GetUserFileName());
3859599516SKenneth E. Jansen }
3959599516SKenneth E. Jansen
4059599516SKenneth E. Jansen #ifdef AMG
4159599516SKenneth E. Jansen
4259599516SKenneth E. Jansen // AMG PARAMETERS
4359599516SKenneth E. Jansen
4459599516SKenneth E. Jansen if ((string)inp.GetValue("Employ AMG") == "True" ) {
4559599516SKenneth E. Jansen
4659599516SKenneth E. Jansen amgvari.irun_amg = 1;
4759599516SKenneth E. Jansen
4859599516SKenneth E. Jansen amgvari.irun_amg_prec = inp.GetValue("Run AMG As CG-preconditioner");
4959599516SKenneth E. Jansen
5059599516SKenneth E. Jansen amgvarr.strong_eps = inp.GetValue("Strong Criterion Eps");
5159599516SKenneth E. Jansen
5259599516SKenneth E. Jansen amgvarr.ramg_eps = inp.GetValue("AMG Convergence Eps");
5359599516SKenneth E. Jansen
5459599516SKenneth E. Jansen amgvarr.ramg_relax = inp.GetValue("AMG Relaxation Omega");
5559599516SKenneth E. Jansen amgvarr.ramg_trunc = inp.GetValue("AMG Truncation Set");
5659599516SKenneth E. Jansen
5759599516SKenneth E. Jansen amgvari.iamg_verb = inp.GetValue("AMG Verbosity");
5859599516SKenneth E. Jansen
5959599516SKenneth E. Jansen amgvari.iamg_neg_sten = inp.GetValue("AMG Neg_Sten");
6059599516SKenneth E. Jansen
6159599516SKenneth E. Jansen amgvari.iamg_nlevel = inp.GetValue("AMG Nlevel");
6259599516SKenneth E. Jansen
6359599516SKenneth E. Jansen amgvari.iamg_c_solver = inp.GetValue("AMG Coarsest Solver");
6459599516SKenneth E. Jansen
6559599516SKenneth E. Jansen amgvari.iamg_init = 0;
6659599516SKenneth E. Jansen amgvari.iamg_setup_frez = inp.GetValue("AMG Freeze Setup");
6759599516SKenneth E. Jansen if ((string)inp.GetValue("AMG Interpolation Type")=="Standard")
6859599516SKenneth E. Jansen amgvari.iamg_interp = 1;
6959599516SKenneth E. Jansen else
7059599516SKenneth E. Jansen amgvari.iamg_interp = 0;
7159599516SKenneth E. Jansen amgvari.maxnev = inp.GetValue("AMG GGB nev");
7259599516SKenneth E. Jansen amgvari.maxncv = inp.GetValue("AMG GGB ncv");
7359599516SKenneth E. Jansen
7459599516SKenneth E. Jansen if ((string)inp.GetValue("AMG Smoother Type")=="Gauss-Seidel")
7559599516SKenneth E. Jansen amgvari.iamg_smoother = 1;
7659599516SKenneth E. Jansen else if ((string)inp.GetValue("AMG Smoother Type")=="ChebyShev")
7759599516SKenneth E. Jansen amgvari.iamg_smoother = 2;
7859599516SKenneth E. Jansen else if ((string)inp.GetValue("AMG Smoother Type")=="MLS")
7959599516SKenneth E. Jansen amgvari.iamg_smoother = 3;
8059599516SKenneth E. Jansen amgvarr.ramg_chebyratio = inp.GetValue("AMG Chebyshev Eigenvalue ratio");
8159599516SKenneth E. Jansen
8259599516SKenneth E. Jansen amgvari.mlsdeg = inp.GetValue("AMG MLS Degree");
8359599516SKenneth E. Jansen amgvari.iamg_reduce = inp.GetValue("AMG Run Reduced Serial");
8459599516SKenneth E. Jansen }
8559599516SKenneth E. Jansen #endif
8659599516SKenneth E. Jansen
8759599516SKenneth E. Jansen /////////////////////////////chen Sep 25 2009 Flow Control Parameters ////////
8859599516SKenneth E. Jansen // Take BC from IC at inlet
8959599516SKenneth E. Jansen ctrlvari.iI2Binlet = (int)inp.GetValue("Take BC from IC at Inlet");
9059599516SKenneth E. Jansen if(ctrlvari.iI2Binlet > 0 )
9159599516SKenneth E. Jansen {
9259599516SKenneth E. Jansen ctrlvar.inletVelX = inp.GetValue("Inlet Bulk x Velocity");
9359599516SKenneth E. Jansen }
9459599516SKenneth E. Jansen // set uniform outlet pressure
95513954efSKenneth E. Jansen // ctrlvari.isetOutPres = (int)inp.GetValue("Set Outlet Pressure");
96513954efSKenneth E. Jansen // if(ctrlvari.isetOutPres > 0 )
97513954efSKenneth E. Jansen
98513954efSKenneth E. Jansen ductvari.isetOutletID = (int)inp.GetValue("Duct Outlet ID");
99513954efSKenneth E. Jansen if(ductvari.isetOutletID > 0 )
100513954efSKenneth E. Jansen ctrlvar.outPres1 = inp.GetValue("Duct Uniform Outlet Pressure");
101513954efSKenneth E. Jansen
102513954efSKenneth E. Jansen // Override Eddy Vicosity IC and BC
103513954efSKenneth E. Jansen ductvari.isetEV_IC_BC=(int)inp.GetValue("Override Eddy Viscosity");
104513954efSKenneth E. Jansen if(ductvari.isetEV_IC_BC==1){
105513954efSKenneth E. Jansen ductvar.evis_IC_BC=inp.GetValue("Eddy Viscosity Value for Override");
10659599516SKenneth E. Jansen }
107513954efSKenneth E. Jansen
108513954efSKenneth E. Jansen if(ductvari.isetEVramp = (int)inp.GetValue("Specify Initial Eddy Viscosity Ramp")){
109513954efSKenneth E. Jansen ductvar.EVrampXmin =inp.GetValue("Initial Scalar 1 ramp start");
110513954efSKenneth E. Jansen ductvar.EVrampXmax =inp.GetValue("Initial Scalar 1 ramp end");
111513954efSKenneth E. Jansen ductvar.EVrampMax =inp.GetValue("Initial Scalar 1 high");
112513954efSKenneth E. Jansen ductvar.EVrampMin =inp.GetValue("Initial Scalar 1 low");
113513954efSKenneth E. Jansen }
114513954efSKenneth E. Jansen
11559599516SKenneth E. Jansen // set initial condition
11659599516SKenneth E. Jansen ctrlvari.isetInitial=(int)inp.GetValue("Specify Initial Conditions");
117513954efSKenneth E. Jansen if(ctrlvari.isetInitial==1){
11859599516SKenneth E. Jansen ctrlvar.xvel_ini = inp.GetValue("Initial X Velocity");
11959599516SKenneth E. Jansen ctrlvar.yvel_ini = inp.GetValue("Initial Y Velocity");
12059599516SKenneth E. Jansen ctrlvar.zvel_ini = inp.GetValue("Initial Z Velocity");
12159599516SKenneth E. Jansen ctrlvar.temp_ini = inp.GetValue("Initial Temp");
12259599516SKenneth E. Jansen ctrlvar.pres_ini = inp.GetValue("Initial Pressure");
123*a0d6c462SKenneth E. Jansen ctrlvar.evis_ini = inp.GetValue("Initial Scalar 1");
12459599516SKenneth E. Jansen }
12559599516SKenneth E. Jansen
126513954efSKenneth E. Jansen
127513954efSKenneth E. Jansen
128513954efSKenneth E. Jansen
129513954efSKenneth E. Jansen //initial condition for duct
130513954efSKenneth E. Jansen ductvari.isetInitial_Duct=(int)inp.GetValue("Set Initial Condition for Duct");
131513954efSKenneth E. Jansen //inlet condition for duct
132513954efSKenneth E. Jansen ductvari.isetInlet_Duct=(int)inp.GetValue("Set Inlet Condition for Duct");
133513954efSKenneth E. Jansen
134513954efSKenneth E. Jansen //surfID, t_cycle, t_riseTime, t_fallTime, t_fullOn, vmax, vmin, T, nu, deltaBL, enable
135513954efSKenneth E. Jansen n_tmp = (int) inp.GetValue("Number of Blower Surfaces"); //BC_setNBlower(&n_tmp);
136513954efSKenneth E. Jansen
137513954efSKenneth E. Jansen if(n_tmp > 0){
138513954efSKenneth E. Jansen vector<int> *ivec[3];
139513954efSKenneth E. Jansen vector<double> *dvec[10];
140513954efSKenneth E. Jansen
141513954efSKenneth E. Jansen for(i = 0; i < 3; i++) ivec[i] = new vector<int>;
142513954efSKenneth E. Jansen for(i = 0; i < 10; i++) dvec[i] = new vector<double>;
143513954efSKenneth E. Jansen
144513954efSKenneth E. Jansen *ivec[0] = inp.GetValue("Blower Mode");
145513954efSKenneth E. Jansen *ivec[1] = inp.GetValue("Blower Surface ID");
146513954efSKenneth E. Jansen *ivec[2] = inp.GetValue("Blower Enable");
147513954efSKenneth E. Jansen
148513954efSKenneth E. Jansen *dvec[0] = inp.GetValue("Blower Cycle Period");
149513954efSKenneth E. Jansen *dvec[1] = inp.GetValue("Blower Full On Period");
150513954efSKenneth E. Jansen *dvec[2] = inp.GetValue("Blower Rise Time");
151513954efSKenneth E. Jansen *dvec[3] = inp.GetValue("Blower Fall Time");
152513954efSKenneth E. Jansen *dvec[4] = inp.GetValue("Blower Maximum u_normal");
153513954efSKenneth E. Jansen *dvec[5] = inp.GetValue("Blower Minimum u_normal");
154513954efSKenneth E. Jansen *dvec[6] = inp.GetValue("Blower Temperature");
155513954efSKenneth E. Jansen *dvec[7] = inp.GetValue("Blower Eddy Viscosity");
156513954efSKenneth E. Jansen *dvec[8] = inp.GetValue("Blower BL Thickness");
157513954efSKenneth E. Jansen *dvec[9] = inp.GetValue("Blower BL Thickness (scalar)");
158513954efSKenneth E. Jansen
159513954efSKenneth E. Jansen BC_setVars( &n_tmp,
160513954efSKenneth E. Jansen &(*ivec[0])[0], //mode
161513954efSKenneth E. Jansen &(*ivec[1])[0], //surfID
162513954efSKenneth E. Jansen &(*ivec[2])[0], //enable
163513954efSKenneth E. Jansen &(*dvec[0])[0], //t_cycle
164513954efSKenneth E. Jansen &(*dvec[1])[0], //t_fullOn
165513954efSKenneth E. Jansen &(*dvec[2])[0], //t_riseTime
166513954efSKenneth E. Jansen &(*dvec[3])[0], //t_fallTime
167513954efSKenneth E. Jansen &(*dvec[4])[0], //vmax
168513954efSKenneth E. Jansen &(*dvec[5])[0], //vmin
169513954efSKenneth E. Jansen &(*dvec[6])[0], //T
170513954efSKenneth E. Jansen &(*dvec[7])[0], //nu
171513954efSKenneth E. Jansen &(*dvec[8])[0], //delta BL velocity
172513954efSKenneth E. Jansen &(*dvec[9])[0] ); //delta BL scalar
173513954efSKenneth E. Jansen
174513954efSKenneth E. Jansen }
175513954efSKenneth E. Jansen
176513954efSKenneth E. Jansen //suction condition for duct
177513954efSKenneth E. Jansen ductvari.isetSuctionID_Duct=(int)inp.GetValue("Duct Set Suction Surface ID"); //suction patch surface IDs
178513954efSKenneth E. Jansen if(ductvari.isetSuctionID_Duct > 0){
179513954efSKenneth E. Jansen ductvari.suctionVbottom = inp.GetValue("Duct Bottom Suction Normal Velocity");
180513954efSKenneth E. Jansen ductvari.suctionVside_lower = inp.GetValue("Duct Lower Side Suction Normal Velocity");
181513954efSKenneth E. Jansen ductvari.suctionVside_upper = inp.GetValue("Duct Upper Side Surface Normal Velocity");
182513954efSKenneth E. Jansen ductvari.suctionVtop = inp.GetValue("Duct Top Surface Normal Velocity");
183513954efSKenneth E. Jansen }
184513954efSKenneth E. Jansen
185513954efSKenneth E. Jansen // duct geometry type
186513954efSKenneth E. Jansen ductvari.iDuctgeometryType = (int)inp.GetValue("Duct Geometry Type");
187513954efSKenneth E. Jansen
18859599516SKenneth E. Jansen ///////////////////////////////////////////////////////////////////////////////
18959599516SKenneth E. Jansen
19059599516SKenneth E. Jansen
19159599516SKenneth E. Jansen // Disabled Features
19259599516SKenneth E. Jansen
19359599516SKenneth E. Jansen conpar.iALE = inp.GetValue("iALE");
19459599516SKenneth E. Jansen conpar.icoord = inp.GetValue("icoord");
19559599516SKenneth E. Jansen conpar.irs = inp.GetValue("irs");
19659599516SKenneth E. Jansen conpar.iexec = inp.GetValue("iexec");
19759599516SKenneth E. Jansen timpar.ntseq = inp.GetValue("ntseq");
19859599516SKenneth E. Jansen solpar.imap = inp.GetValue("imap");
19959599516SKenneth E. Jansen
20059599516SKenneth E. Jansen
20159599516SKenneth E. Jansen // Solution Control Keywords
20259599516SKenneth E. Jansen
20359599516SKenneth E. Jansen if((string)inp.GetValue("Equation of State") == "Incompressible") matdat.matflg[0][0] =-1 ;
20459599516SKenneth E. Jansen if((string)inp.GetValue("Equation of State") == "Compressible") matdat.matflg[0][0] =0;
20559599516SKenneth E. Jansen inpdat.Delt[0] = inp.GetValue("Time Step Size");
20659599516SKenneth E. Jansen inpdat.nstep[0] = inp.GetValue("Number of Timesteps");
20759599516SKenneth E. Jansen if((string)inp.GetValue("Viscous Control")=="Viscous") conpar.navier=1 ; else conpar.navier=0;
20859599516SKenneth E. Jansen
20959599516SKenneth E. Jansen if ((string)inp.GetValue("Turbulence Model") == "No-Model" ) {
21059599516SKenneth E. Jansen turbvari.irans = 0;
21159599516SKenneth E. Jansen turbvari.iles = 0;
21259599516SKenneth E. Jansen } else if ((string)inp.GetValue("Turbulence Model") == "LES" ) {
21359599516SKenneth E. Jansen turbvari.iles = 1;
21459599516SKenneth E. Jansen turbvari.irans = 0;
21559599516SKenneth E. Jansen } else if ((string)inp.GetValue("Turbulence Model") == "RANS-SA" ) {
21659599516SKenneth E. Jansen turbvari.iles = 0;
21759599516SKenneth E. Jansen turbvari.irans = -1;
21859599516SKenneth E. Jansen } else if ((string)inp.GetValue("Turbulence Model") == "RANS" ) {
21959599516SKenneth E. Jansen turbvari.iles = 0;
22059599516SKenneth E. Jansen turbvari.irans = -1; // assume S-A for backward compatibility
22159599516SKenneth E. Jansen } else if ((string)inp.GetValue("Turbulence Model") == "RANS-KE" ) {
22259599516SKenneth E. Jansen turbvari.iles = 0;
22359599516SKenneth E. Jansen turbvari.irans = -2;
22459599516SKenneth E. Jansen } else if ((string)inp.GetValue("Turbulence Model") == "DES97" ) {
22559599516SKenneth E. Jansen turbvari.iles = -1;
22659599516SKenneth E. Jansen turbvari.irans = -1;
22759599516SKenneth E. Jansen } else if ((string)inp.GetValue("Turbulence Model") == "DDES" ) {
22859599516SKenneth E. Jansen turbvari.iles = -2;
22959599516SKenneth E. Jansen turbvari.irans = -1;
23059599516SKenneth E. Jansen
23159599516SKenneth E. Jansen } else {
23259599516SKenneth E. Jansen cout << " Turbulence Model: Only Legal Values ( No-Model, LES, RANS-SA, RANS-KE, DES97, DDES )";
23359599516SKenneth E. Jansen cout << endl;
23459599516SKenneth E. Jansen exit(1);
23559599516SKenneth E. Jansen }
23659599516SKenneth E. Jansen
23759599516SKenneth E. Jansen // if (turbvari.iles*turbvari.irans!=0) turbvar.eles=
23859599516SKenneth E. Jansen // inp.GetValue("DES Edge Length");
23959599516SKenneth E. Jansen
24059599516SKenneth E. Jansen if (turbvari.irans<0 && turbvari.iles<0)
24159599516SKenneth E. Jansen turbvar.DES_SA_hmin=(double)inp.GetValue("DES SA Minimum Edge Length");
24259599516SKenneth E. Jansen
24359599516SKenneth E. Jansen int solflow, solheat , solscalr, ilset;
24459599516SKenneth E. Jansen ((string)inp.GetValue("Solve Flow") == "True")? solflow=1:solflow=0;
24559599516SKenneth E. Jansen ((string)inp.GetValue("Solve Heat") == "True")? solheat=1:solheat=0;
24659599516SKenneth E. Jansen //for compressible solheat= False so
24759599516SKenneth E. Jansen if((string)inp.GetValue("Equation of State") == "Compressible") solheat=0;
24859599516SKenneth E. Jansen ilset = (int)inp.GetValue("Solve Level Set");
24959599516SKenneth E. Jansen solscalr = (int)inp.GetValue("Solve Scalars");
25059599516SKenneth E. Jansen solscalr += ilset;
25159599516SKenneth E. Jansen if(turbvari.irans == -1) solscalr++;
25259599516SKenneth E. Jansen if(turbvari.irans == -2) solscalr=solscalr+2;
25359599516SKenneth E. Jansen if ( solscalr > 4 ) {
25459599516SKenneth E. Jansen cout << " Only Four Scalars are supported \n";
25559599516SKenneth E. Jansen cout <<" Please reduce number of scalars \n";
25659599516SKenneth E. Jansen exit(1);
25759599516SKenneth E. Jansen }
25859599516SKenneth E. Jansen inpdat.impl[0] = 10*solflow+solscalr*100+solheat;
25959599516SKenneth E. Jansen
26059599516SKenneth E. Jansen levlset.iLSet = ilset;
26159599516SKenneth E. Jansen if( ilset > 0) {
26259599516SKenneth E. Jansen levlset.epsilon_ls = inp.GetValue("Number of Elements Across Interface");
26359599516SKenneth E. Jansen levlset.epsilon_lsd = inp.GetValue("Number of Elements Across Interface for Redistancing");
26459599516SKenneth E. Jansen levlset.dtlset = inp.GetValue("Pseudo Time step for Redistancing");
26559599516SKenneth E. Jansen levlset.iExpLSSclr2 = inp.GetValue("Explicit Solve for Redistance Field");
26659599516SKenneth E. Jansen levlset.iExpLSSclr1 = inp.GetValue("Explicit Solve for Scalar 1 Field");
26759599516SKenneth E. Jansen if ((string)inp.GetValue("Apply Volume Constraint") == "True" ) {
26859599516SKenneth E. Jansen levlset.ivconstraint = 1; }
26959599516SKenneth E. Jansen else if((string)inp.GetValue("Apply Volume Constraint") == "False" ) {
27059599516SKenneth E. Jansen levlset.ivconstraint = 0; }
27159599516SKenneth E. Jansen else {
27259599516SKenneth E. Jansen cout << "Apply Volume Constraint: Only Legal Values (True, False) ";
27359599516SKenneth E. Jansen cout << endl;
27459599516SKenneth E. Jansen exit(1);
27559599516SKenneth E. Jansen }
27659599516SKenneth E. Jansen }
27759599516SKenneth E. Jansen
27859599516SKenneth E. Jansen vector<double> vec;
27959599516SKenneth E. Jansen
28059599516SKenneth E. Jansen // OUTPUT CONTROL KEY WORDS.
28159599516SKenneth E. Jansen
28259599516SKenneth E. Jansen conpar.necho = inp.GetValue("Verbosity Level");
28359599516SKenneth E. Jansen outpar.ntout = inp.GetValue("Number of Timesteps between Restarts");
284fcf561c1SCameron Smith outpar.nsynciofiles = inp.GetValue("Number of SyncIO Files");
28559599516SKenneth E. Jansen if((string)inp.GetValue("Print Statistics") == "True") outpar.ioform = 2;
28659599516SKenneth E. Jansen else outpar.ioform = 1;
28759599516SKenneth E. Jansen
28859599516SKenneth E. Jansen if((string)inp.GetValue("Print Wall Fluxes") == "True") outpar.iowflux = 1;
28959599516SKenneth E. Jansen else outpar.iowflux = 0;
29059599516SKenneth E. Jansen
29159599516SKenneth E. Jansen if((string)inp.GetValue("Print FieldView") == "True") outpar.iofieldv = 1;
29259599516SKenneth E. Jansen else outpar.iofieldv = 0;
29359599516SKenneth E. Jansen
29459599516SKenneth E. Jansen if((string)inp.GetValue("Print ybar") == "True") outpar.ioybar = 1;
29559599516SKenneth E. Jansen else outpar.ioybar = 0;
29659599516SKenneth E. Jansen
29759599516SKenneth E. Jansen if((string)inp.GetValue("Print vorticity") == "True") outpar.ivort = 1;
29859599516SKenneth E. Jansen else outpar.ivort = 0;
29959599516SKenneth E. Jansen
30059599516SKenneth E. Jansen outpar.nstepsincycle = inp.GetValue("Number of Steps in a Cycle");
30159599516SKenneth E. Jansen outpar.nphasesincycle = inp.GetValue("Number of Phases in a Cycle");
30259599516SKenneth E. Jansen outpar.ncycles_startphaseavg = inp.GetValue("Number of Initial Cycles to Skip in Phase Average");
30359599516SKenneth E. Jansen
30459599516SKenneth E. Jansen strcpy( outpar.iotype , ((string)inp.GetValue("Data Block Format")).c_str());
30559599516SKenneth E. Jansen strcpy( phasta_iotype , ((string)inp.GetValue("Data Block Format")).c_str());
30659599516SKenneth E. Jansen SONFATH = inp.GetValue("Number of Father Nodes");
30759599516SKenneth E. Jansen
30859599516SKenneth E. Jansen if((string)inp.GetValue("Print Residual at End of Step") == "True") genpar.lstres = 1;
30959599516SKenneth E. Jansen else genpar.lstres = 0;
31059599516SKenneth E. Jansen
31159599516SKenneth E. Jansen if((string)inp.GetValue("Print Error Indicators") == "True") turbvar.ierrcalc = 1;
31259599516SKenneth E. Jansen else turbvar.ierrcalc = 0;
31359599516SKenneth E. Jansen
31459599516SKenneth E. Jansen if((string)inp.GetValue("Print Velocity Hessian") == "True") turbvar.ihessian = 1;
31559599516SKenneth E. Jansen else turbvar.ihessian = 0;
31659599516SKenneth E. Jansen
31759599516SKenneth E. Jansen if ( turbvar.ierrcalc == 1 )
31859599516SKenneth E. Jansen turbvari.ierrsmooth = inp.GetValue("Number of Error Smoothing Iterations");
31959599516SKenneth E. Jansen
32059599516SKenneth E. Jansen for(i=0;i<MAXSURF+1; i++) aerfrc.nsrflist[i] = 0;
32159599516SKenneth E. Jansen int nsrfCM = inp.GetValue("Number of Force Surfaces");
32259599516SKenneth E. Jansen if (nsrfCM > 0) {
32359599516SKenneth E. Jansen vector<int> ivec = inp.GetValue("Surface ID's for Force Calculation");
32459599516SKenneth E. Jansen for(i=0; i< nsrfCM; i++){
32559599516SKenneth E. Jansen aerfrc.nsrflist[ivec[i]] = 1;
32659599516SKenneth E. Jansen // cout <<"surface in force list "<< ivec[i] << endl;
32759599516SKenneth E. Jansen }
32859599516SKenneth E. Jansen ivec.erase(ivec.begin(),ivec.end());
32959599516SKenneth E. Jansen }
33059599516SKenneth E. Jansen
33159599516SKenneth E. Jansen aerfrc.isrfIM = inp.GetValue("Surface ID for Integrated Mass");
33259599516SKenneth E. Jansen
33359599516SKenneth E. Jansen outpar.iv_rankpercore = inp.GetValue("Ranks per core");
33459599516SKenneth E. Jansen outpar.iv_corepernode = inp.GetValue("Cores per node");
33559599516SKenneth E. Jansen
33659599516SKenneth E. Jansen turbvari.iramp=0;
33759599516SKenneth E. Jansen if((string)inp.GetValue("Ramp Inflow") == "True") turbvari.iramp=1;
33859599516SKenneth E. Jansen if(turbvari.iramp == 1) {
33959599516SKenneth E. Jansen vec = inp.GetValue("Mdot Ramp Inflow Start and Stop");
34059599516SKenneth E. Jansen for(i=0; i<2 ; i++){
34159599516SKenneth E. Jansen turbvar.rampmdot[0][i]=vec[i];
34259599516SKenneth E. Jansen }
34359599516SKenneth E. Jansen vec = inp.GetValue("Mdot Ramp Lower FC Start and Stop");
34459599516SKenneth E. Jansen for(i=0; i<2 ; i++){
34559599516SKenneth E. Jansen turbvar.rampmdot[1][i]=vec[i];
34659599516SKenneth E. Jansen }
34759599516SKenneth E. Jansen vec = inp.GetValue("Mdot Ramp Upper FC Start and Stop");
34859599516SKenneth E. Jansen for(i=0; i<2 ; i++){
34959599516SKenneth E. Jansen turbvar.rampmdot[2][i]=vec[i];
35059599516SKenneth E. Jansen }
35159599516SKenneth E. Jansen }
35259599516SKenneth E. Jansen
35359599516SKenneth E. Jansen //Limiting
35459599516SKenneth E. Jansen vec = inp.GetValue("Limit u1");
35559599516SKenneth E. Jansen for(i=0; i<3 ; i++){
35659599516SKenneth E. Jansen turbvar.ylimit[0][i] = vec[i];
35759599516SKenneth E. Jansen }
35859599516SKenneth E. Jansen vec.erase(vec.begin(),vec.end());
35959599516SKenneth E. Jansen
36059599516SKenneth E. Jansen vec = inp.GetValue("Limit u2");
36159599516SKenneth E. Jansen for(i=0; i<3 ; i++){
36259599516SKenneth E. Jansen turbvar.ylimit[1][i] = vec[i];
36359599516SKenneth E. Jansen }
36459599516SKenneth E. Jansen vec.erase(vec.begin(),vec.end());
36559599516SKenneth E. Jansen
36659599516SKenneth E. Jansen vec = inp.GetValue("Limit u3");
36759599516SKenneth E. Jansen for(i=0; i<3 ; i++){
36859599516SKenneth E. Jansen turbvar.ylimit[2][i] = vec[i];
36959599516SKenneth E. Jansen }
37059599516SKenneth E. Jansen vec.erase(vec.begin(),vec.end());
37159599516SKenneth E. Jansen
37259599516SKenneth E. Jansen vec = inp.GetValue("Limit Pressure");
37359599516SKenneth E. Jansen for(i=0; i<3 ; i++){
37459599516SKenneth E. Jansen turbvar.ylimit[3][i] = vec[i];
37559599516SKenneth E. Jansen }
37659599516SKenneth E. Jansen vec.erase(vec.begin(),vec.end());
37759599516SKenneth E. Jansen
37859599516SKenneth E. Jansen vec = inp.GetValue("Limit Temperature");
37959599516SKenneth E. Jansen for(i=0; i<3 ; i++){
38059599516SKenneth E. Jansen turbvar.ylimit[4][i] = vec[i];
38159599516SKenneth E. Jansen }
38259599516SKenneth E. Jansen vec.erase(vec.begin(),vec.end());
38359599516SKenneth E. Jansen
38459599516SKenneth E. Jansen //Material Properties Keywords
38559599516SKenneth E. Jansen matdat.nummat = levlset.iLSet+1;
38659599516SKenneth E. Jansen if((string)inp.GetValue("Shear Law") == "Constant Viscosity")
38759599516SKenneth E. Jansen for(i=0; i < levlset.iLSet+1; i++) matdat.matflg[i][1] = 0;
38859599516SKenneth E. Jansen
38959599516SKenneth E. Jansen if((string)inp.GetValue("Bulk Viscosity Law") == "Constant Bulk Viscosity")
39059599516SKenneth E. Jansen for(i=0; i < levlset.iLSet+1; i++) matdat.matflg[i][2] = 0;
39159599516SKenneth E. Jansen
39259599516SKenneth E. Jansen mmatpar.pr = inp.GetValue("Prandtl Number");
39359599516SKenneth E. Jansen
39459599516SKenneth E. Jansen if((string)inp.GetValue("Conductivity Law") == "Constant Conductivity")
39559599516SKenneth E. Jansen for(i=0; i < levlset.iLSet+1; i++) matdat.matflg[i][3] = 0;
39659599516SKenneth E. Jansen
39759599516SKenneth E. Jansen vec = inp.GetValue("Density");
39859599516SKenneth E. Jansen for(i=0; i< levlset.iLSet +1 ; i++){
39959599516SKenneth E. Jansen matdat.datmat[i][0][0] = vec[i];
40059599516SKenneth E. Jansen }
40159599516SKenneth E. Jansen vec.erase(vec.begin(),vec.end());
40259599516SKenneth E. Jansen
40359599516SKenneth E. Jansen vec = inp.GetValue("Viscosity");
40459599516SKenneth E. Jansen for(i=0; i< levlset.iLSet +1 ; i++){
40559599516SKenneth E. Jansen matdat.datmat[i][1][0] = vec[i];
40659599516SKenneth E. Jansen }
40759599516SKenneth E. Jansen vec.erase(vec.begin(),vec.end());
40859599516SKenneth E. Jansen
40959599516SKenneth E. Jansen // vec = inp.GetValue("Specific Heat");
41059599516SKenneth E. Jansen for(i=0; i< levlset.iLSet +1 ; i++){
41159599516SKenneth E. Jansen matdat.datmat[i][2][0] = 0;
41259599516SKenneth E. Jansen }
41359599516SKenneth E. Jansen // vec.erase(vec.begin(),vec.end());
41459599516SKenneth E. Jansen
41559599516SKenneth E. Jansen vec = inp.GetValue("Thermal Conductivity");
41659599516SKenneth E. Jansen for(i=0; i< levlset.iLSet +1 ; i++){
41759599516SKenneth E. Jansen matdat.datmat[i][3][0] = vec[i];
41859599516SKenneth E. Jansen }
41959599516SKenneth E. Jansen vec.erase(vec.begin(),vec.end());
42059599516SKenneth E. Jansen
42159599516SKenneth E. Jansen vec = inp.GetValue("Scalar Diffusivity");
42259599516SKenneth E. Jansen for(i=0; i< solscalr ; i++){
42359599516SKenneth E. Jansen sclrs.scdiff[i] = vec[i];
42459599516SKenneth E. Jansen }
42559599516SKenneth E. Jansen vec.erase(vec.begin(),vec.end());
42659599516SKenneth E. Jansen
42759599516SKenneth E. Jansen if((string)inp.GetValue("Zero Mean Pressure") == "True")
42859599516SKenneth E. Jansen turbvar.pzero=1;
42959599516SKenneth E. Jansen
43059599516SKenneth E. Jansen turbvar.rmutarget = inp.GetValue("Target Viscosity For Step NSTEP");
43159599516SKenneth E. Jansen
43259599516SKenneth E. Jansen if ( (string)inp.GetValue("Body Force Option") == "None" ) {
43359599516SKenneth E. Jansen for( i=0; i< levlset.iLSet +1 ; i++) matdat.matflg[i][4] = 0;
43459599516SKenneth E. Jansen }
43559599516SKenneth E. Jansen else if ( (string)inp.GetValue("Body Force Option") == "Vector" ) {
43659599516SKenneth E. Jansen for( i=0; i< levlset.iLSet +1 ; i++) matdat.matflg[i][4] = 1;
43759599516SKenneth E. Jansen }
43859599516SKenneth E. Jansen else if ( (string)inp.GetValue("Body Force Option") == "User e3source.f" ) {
43959599516SKenneth E. Jansen for( i=0; i< levlset.iLSet +1 ; i++) matdat.matflg[i][4] = 3;
44059599516SKenneth E. Jansen }
44159599516SKenneth E. Jansen else if ( (string)inp.GetValue("Body Force Option") == "Boussinesq" ) {
44259599516SKenneth E. Jansen for(i=0; i< levlset.iLSet +1 ; i++) matdat.matflg[i][4] = 2;
44359599516SKenneth E. Jansen }
44459599516SKenneth E. Jansen else if ( (string)inp.GetValue("Body Force Option") == "Cooling Analytic" ) {
44559599516SKenneth E. Jansen for(i=0; i< levlset.iLSet +1 ; i++) matdat.matflg[i][4] = 4;
4460deefd04SKenneth E. Jansen ctrlvar.xvel_ini = inp.GetValue("Initial X Velocity");
4470deefd04SKenneth E. Jansen ctrlvar.yvel_ini = inp.GetValue("Initial Y Velocity");
4480deefd04SKenneth E. Jansen ctrlvar.zvel_ini = inp.GetValue("Initial Z Velocity");
4490deefd04SKenneth E. Jansen ctrlvar.temp_ini = inp.GetValue("Initial Temp");
4500deefd04SKenneth E. Jansen ctrlvar.pres_ini = inp.GetValue("Initial Pressure");
45159599516SKenneth E. Jansen }
45259599516SKenneth E. Jansen else if ( (string)inp.GetValue("Body Force Option") == "Cooling Initial Condition" ) {
45359599516SKenneth E. Jansen for(i=0; i< levlset.iLSet +1 ; i++) matdat.matflg[i][4] = 5;
45459599516SKenneth E. Jansen }
45559599516SKenneth E. Jansen
45659599516SKenneth E. Jansen // the following block of stuff is common to all cooling type sponges.
45759599516SKenneth E. Jansen // Specific stuff belongs in the conditionals above
45859599516SKenneth E. Jansen
45959599516SKenneth E. Jansen if(matdat.matflg[0][4] >=4) {
46059599516SKenneth E. Jansen spongevar.betamax = inp.GetValue("Maximum Value of Sponge Parameter");
46159599516SKenneth E. Jansen spongevar.zinsponge = inp.GetValue("Inflow Cooling Sponge Ends at z");
46259599516SKenneth E. Jansen spongevar.zoutsponge= inp.GetValue("Outflow Cooling Sponge Begins at z");
46359599516SKenneth E. Jansen spongevar.radsponge = inp.GetValue("Radial Cooling Sponge Begins at r");
46459599516SKenneth E. Jansen spongevar.grthosponge = inp.GetValue("Sponge Growth Coefficient Outflow");
46559599516SKenneth E. Jansen spongevar.grthisponge = inp.GetValue("Sponge Growth Coefficient Inflow");
46659599516SKenneth E. Jansen
46759599516SKenneth E. Jansen
46859599516SKenneth E. Jansen spongevar.spongecontinuity = 0;
46959599516SKenneth E. Jansen spongevar.spongemomentum1 = 0;
47059599516SKenneth E. Jansen spongevar.spongemomentum2 = 0;
47159599516SKenneth E. Jansen spongevar.spongemomentum3 = 0;
47259599516SKenneth E. Jansen spongevar.spongeenergy = 0;
47359599516SKenneth E. Jansen
47459599516SKenneth E. Jansen if((string)inp.GetValue("Sponge for Continuity Equation") == "True")
47559599516SKenneth E. Jansen spongevar.spongecontinuity = 1;
47659599516SKenneth E. Jansen if((string)inp.GetValue("Sponge for x Momentum Equation") == "True")
47759599516SKenneth E. Jansen spongevar.spongemomentum1 = 1;
47859599516SKenneth E. Jansen if((string)inp.GetValue("Sponge for y Momentum Equation") == "True")
47959599516SKenneth E. Jansen spongevar.spongemomentum2 = 1;
48059599516SKenneth E. Jansen if((string)inp.GetValue("Sponge for z Momentum Equation") == "True")
48159599516SKenneth E. Jansen spongevar.spongemomentum3 = 1;
48259599516SKenneth E. Jansen if((string)inp.GetValue("Sponge for Energy Equation") == "True")
48359599516SKenneth E. Jansen spongevar.spongeenergy = 1;
48459599516SKenneth E. Jansen
48559599516SKenneth E. Jansen }
48659599516SKenneth E. Jansen
48759599516SKenneth E. Jansen vec = inp.GetValue("Body Force");
48859599516SKenneth E. Jansen for(i=0; i< levlset.iLSet +1 ; i++){
48959599516SKenneth E. Jansen matdat.datmat[i][4][0] = vec[0+i*3];
49059599516SKenneth E. Jansen matdat.datmat[i][4][1] = vec[1+i*3];
49159599516SKenneth E. Jansen matdat.datmat[i][4][2] = vec[2+i*3];
49259599516SKenneth E. Jansen }
49359599516SKenneth E. Jansen vec.erase(vec.begin(),vec.end());
49459599516SKenneth E. Jansen
49559599516SKenneth E. Jansen vec = inp.GetValue("Body Force Pressure Gradient");
49659599516SKenneth E. Jansen for(i=0; i< levlset.iLSet +1 ; i++){
49759599516SKenneth E. Jansen matdat.datmat[i][6][0] = vec[0+i*3];
49859599516SKenneth E. Jansen matdat.datmat[i][6][1] = vec[1+i*3];
49959599516SKenneth E. Jansen matdat.datmat[i][6][2] = vec[2+i*3];
50059599516SKenneth E. Jansen }
50159599516SKenneth E. Jansen vec.erase(vec.begin(),vec.end());
50259599516SKenneth E. Jansen
50359599516SKenneth E. Jansen if ( (string)inp.GetValue("Surface Tension Option") == "No" ){
50459599516SKenneth E. Jansen genpar.isurf = 0;
50559599516SKenneth E. Jansen }
50659599516SKenneth E. Jansen else if ((string)inp.GetValue("Surface Tension Option") == "Yes" ){
50759599516SKenneth E. Jansen genpar.isurf = 1;
50859599516SKenneth E. Jansen }
50959599516SKenneth E. Jansen else {
51059599516SKenneth E. Jansen cout << " Surface Tension: Only Legal Values (Yes, No) ";
51159599516SKenneth E. Jansen cout << endl;
51259599516SKenneth E. Jansen exit(1);
51359599516SKenneth E. Jansen }
51459599516SKenneth E. Jansen if( genpar.isurf > 0) {
51559599516SKenneth E. Jansen genpar.Bo = inp.GetValue("Bond Number");
51659599516SKenneth E. Jansen }
51759599516SKenneth E. Jansen
51859599516SKenneth E. Jansen genpar.EntropyPressure = inp.GetValue("Entropy Form of Pressure Constraint on Weight Space");
51959599516SKenneth E. Jansen
52059599516SKenneth E. Jansen
52159599516SKenneth E. Jansen if ( (string)inp.GetValue("Rotating Frame of Reference") == "True" ) {
52259599516SKenneth E. Jansen matdat.matflg[0][5] = 1;
52359599516SKenneth E. Jansen vec = inp.GetValue("Rotating Frame of Reference Rotation Rate");
52459599516SKenneth E. Jansen matdat.datmat[0][5][0] = vec[0];
52559599516SKenneth E. Jansen matdat.datmat[0][5][1] = vec[1];
52659599516SKenneth E. Jansen matdat.datmat[0][5][2] = vec[2];
52759599516SKenneth E. Jansen vec.erase(vec.begin(),vec.end());
52859599516SKenneth E. Jansen }
52959599516SKenneth E. Jansen else {
53059599516SKenneth E. Jansen matdat.matflg[0][5] = 0;
53159599516SKenneth E. Jansen matdat.datmat[0][5][0] = 0.;
53259599516SKenneth E. Jansen matdat.datmat[0][5][1] = 0.;
53359599516SKenneth E. Jansen matdat.datmat[0][5][2] = 0.;
53459599516SKenneth E. Jansen }
53559599516SKenneth E. Jansen
53659599516SKenneth E. Jansen
53759599516SKenneth E. Jansen //Linear Solver parameters
538513954efSKenneth E. Jansen conpar.usingpetsc=0; // default is to have PETSc off
539efb88323SKenneth E. Jansen incomp.iprjFlag = 0; incomp.ipresPrjFlag=0; inpdat.svLSFlag=0;
54079f1763eSKenneth E. Jansen inpdat.leslib=0;
541efb88323SKenneth E. Jansen if( (string)inp.GetValue("Solver Type") =="svLS" ){
542efb88323SKenneth E. Jansen inpdat.svLSFlag = 1; }
54359599516SKenneth E. Jansen if( (string)inp.GetValue("Solver Type") =="ACUSIM with P Projection" ){
54479f1763eSKenneth E. Jansen inpdat.leslib=1; incomp.iprjFlag = 0; incomp.ipresPrjFlag=1;}
54559599516SKenneth E. Jansen else if ( (string)inp.GetValue("Solver Type") =="ACUSIM" ){
54679f1763eSKenneth E. Jansen inpdat.leslib=1; incomp.iprjFlag = 0; incomp.ipresPrjFlag=0;}
54759599516SKenneth E. Jansen else if( (string)inp.GetValue("Solver Type") =="ACUSIM with Velocity Projection" ){
54879f1763eSKenneth E. Jansen inpdat.leslib=1; incomp.iprjFlag = 1; incomp.ipresPrjFlag=0;}
54959599516SKenneth E. Jansen else if( (string)inp.GetValue("Solver Type") =="ACUSIM with Full Projection" ){
55079f1763eSKenneth E. Jansen inpdat.leslib=1; incomp.iprjFlag = 1; incomp.ipresPrjFlag=1;}
55159599516SKenneth E. Jansen else if( (string)inp.GetValue("Solver Type") =="GMRES Matrix Free"){
55259599516SKenneth E. Jansen inpdat.impl[0] += 10*solflow;}
55359599516SKenneth E. Jansen else if( (string)inp.GetValue("Solver Type") =="GMRES EBE"){
55459599516SKenneth E. Jansen inpdat.impl[0] += 20*solflow;}
555513954efSKenneth E. Jansen else if( (string)inp.GetValue("Solver Type") =="PETSc"){
556513954efSKenneth E. Jansen conpar.usingpetsc=1;}
55759599516SKenneth E. Jansen //GMRES sparse is assumed default and has the value of 10, MFG 20,
55859599516SKenneth E. Jansen // EBE 30
55959599516SKenneth E. Jansen
56059599516SKenneth E. Jansen
56159599516SKenneth E. Jansen // inpdat.niter[0] = inp.GetValue("Number of Solves per Time Step");
56259599516SKenneth E. Jansen solpar.nGMRES = inp.GetValue("Number of GMRES Sweeps per Solve");
56359599516SKenneth E. Jansen solpar.Kspace = inp.GetValue("Number of Krylov Vectors per GMRES Sweep");
56459599516SKenneth E. Jansen inpdat.LHSupd[0] = inp.GetValue("Number of Solves per Left-hand-side Formation");
56559599516SKenneth E. Jansen inpdat.epstol[0] = inp.GetValue("Tolerance on Momentum Equations");
56659599516SKenneth E. Jansen incomp.prestol = inp.GetValue("Tolerance on ACUSIM Pressure Projection");
56759599516SKenneth E. Jansen incomp.minIters = inp.GetValue("Minimum Number of Iterations per Nonlinear Iteration");
56859599516SKenneth E. Jansen incomp.maxIters = inp.GetValue("Maximum Number of Iterations per Nonlinear Iteration");
56959599516SKenneth E. Jansen inpdat.deltol[0][0]=inp.GetValue("Velocity Delta Ratio");
57059599516SKenneth E. Jansen inpdat.deltol[1][0]=inp.GetValue("Pressure Delta Ratio");
57159599516SKenneth E. Jansen incomp.nPrjs = inp.GetValue("Number of Velocity Projection Vectors");
57259599516SKenneth E. Jansen incomp.nPresPrjs = inp.GetValue("Number of Pressure Projection Vectors");
57359599516SKenneth E. Jansen incomp.iverbose = inp.GetValue("ACUSIM Verbosity Level");
57459599516SKenneth E. Jansen
57559599516SKenneth E. Jansen if(solheat==1){
57659599516SKenneth E. Jansen inpdat.epstol[1]=inp.GetValue("Temperature Solver Tolerance");
57759599516SKenneth E. Jansen inpdat.LHSupd[1]=inp.GetValue("Number of Solves of Temperature per Left-hand-side Formation");
57859599516SKenneth E. Jansen }
57959599516SKenneth E. Jansen
58059599516SKenneth E. Jansen // The following is where you should put any inputs that are able to
58159599516SKenneth E. Jansen // input differently for each scalar. It is a little tedious in the code
58259599516SKenneth E. Jansen // but it should make the solver.inp easier to understand. Note this will
58359599516SKenneth E. Jansen // require some care with regression tests.
58459599516SKenneth E. Jansen
58559599516SKenneth E. Jansen
58659599516SKenneth E. Jansen if(solscalr>0){
58759599516SKenneth E. Jansen inpdat.epstol[2]=inp.GetValue("Scalar 1 Solver Tolerance");
58859599516SKenneth E. Jansen inpdat.LHSupd[2]=inp.GetValue("Number of Solves of Scalar 1 per Left-hand-side Formation");
58959599516SKenneth E. Jansen
59059599516SKenneth E. Jansen vec = inp.GetValue("Limit Scalar 1");
59159599516SKenneth E. Jansen for(i=0; i<3 ; i++){
59259599516SKenneth E. Jansen turbvar.ylimit[5][i] = vec[i];
59359599516SKenneth E. Jansen }
59459599516SKenneth E. Jansen vec.erase(vec.begin(),vec.end());
59559599516SKenneth E. Jansen }
59659599516SKenneth E. Jansen
59759599516SKenneth E. Jansen if(solscalr>1){
59859599516SKenneth E. Jansen inpdat.epstol[3]=inp.GetValue("Scalar 2 Solver Tolerance");
59959599516SKenneth E. Jansen inpdat.LHSupd[3]=inp.GetValue("Number of Solves of Scalar 2 per Left-hand-side Formation");
60059599516SKenneth E. Jansen
60159599516SKenneth E. Jansen vec = inp.GetValue("Limit Scalar 2");
60259599516SKenneth E. Jansen for(i=0; i<3 ; i++){
60359599516SKenneth E. Jansen turbvar.ylimit[6][i] = vec[i];
60459599516SKenneth E. Jansen }
60559599516SKenneth E. Jansen vec.erase(vec.begin(),vec.end());
60659599516SKenneth E. Jansen }
60759599516SKenneth E. Jansen
60859599516SKenneth E. Jansen if(solscalr>2){
60959599516SKenneth E. Jansen inpdat.epstol[4]=inp.GetValue("Scalar 3 Solver Tolerance");
61059599516SKenneth E. Jansen inpdat.LHSupd[4]=inp.GetValue("Number of Solves of Scalar 3 per Left-hand-side Formation");
61159599516SKenneth E. Jansen
61259599516SKenneth E. Jansen vec = inp.GetValue("Limit Scalar 3");
61359599516SKenneth E. Jansen for(i=0; i<3 ; i++){
61459599516SKenneth E. Jansen turbvar.ylimit[7][i] = vec[i];
61559599516SKenneth E. Jansen }
61659599516SKenneth E. Jansen vec.erase(vec.begin(),vec.end());
61759599516SKenneth E. Jansen }
61859599516SKenneth E. Jansen
61959599516SKenneth E. Jansen if(solscalr>3){
62059599516SKenneth E. Jansen inpdat.epstol[5]=inp.GetValue("Scalar 4 Solver Tolerance");
62159599516SKenneth E. Jansen inpdat.LHSupd[5]=inp.GetValue("Number of Solves of Scalar 4 per Left-hand-side Formation");
62259599516SKenneth E. Jansen
62359599516SKenneth E. Jansen vec = inp.GetValue("Limit Scalar 4");
62459599516SKenneth E. Jansen for(i=0; i<3 ; i++){
62559599516SKenneth E. Jansen turbvar.ylimit[8][i] = vec[i];
62659599516SKenneth E. Jansen }
62759599516SKenneth E. Jansen vec.erase(vec.begin(),vec.end());
62859599516SKenneth E. Jansen }
62959599516SKenneth E. Jansen
63059599516SKenneth E. Jansen // DISCRETIZATION CONTROL
63159599516SKenneth E. Jansen
63259599516SKenneth E. Jansen genpar.ipord = inp.GetValue("Basis Function Order");
63359599516SKenneth E. Jansen if((string)inp.GetValue("Time Integration Rule") == "First Order")
63459599516SKenneth E. Jansen inpdat.rhoinf[0] = -1 ;
63559599516SKenneth E. Jansen else inpdat.rhoinf[0] = (double)inp.GetValue("Time Integration Rho Infinity");
63659599516SKenneth E. Jansen if((string)inp.GetValue("Predictor at Start of Step")=="Same Velocity")
63759599516SKenneth E. Jansen genpar.ipred = 1;
63859599516SKenneth E. Jansen if((string)inp.GetValue("Predictor at Start of Step")=="Zero Acceleration")
63959599516SKenneth E. Jansen genpar.ipred = 2;
64059599516SKenneth E. Jansen if((string)inp.GetValue("Predictor at Start of Step")=="Same Acceleration")
64159599516SKenneth E. Jansen genpar.ipred = 3;
64259599516SKenneth E. Jansen if((string)inp.GetValue("Predictor at Start of Step")=="Same Delta")
64359599516SKenneth E. Jansen genpar.ipred = 4;
64459599516SKenneth E. Jansen
64559599516SKenneth E. Jansen if((string)inp.GetValue("Weak Form") == "Galerkin")
64659599516SKenneth E. Jansen solpar.ivart = 1;
64759599516SKenneth E. Jansen if((string)inp.GetValue("Weak Form") == "SUPG")
64859599516SKenneth E. Jansen solpar.ivart = 2;
64959599516SKenneth E. Jansen
65059599516SKenneth E. Jansen if((string)inp.GetValue("Flow Advection Form") == "Convective")
65159599516SKenneth E. Jansen solpar.iconvflow = 2;
65259599516SKenneth E. Jansen else if((string)inp.GetValue("Flow Advection Form") == "Conservative")
65359599516SKenneth E. Jansen solpar.iconvflow = 1;
65459599516SKenneth E. Jansen if((string)inp.GetValue("Scalar Advection Form") == "Convective")
65559599516SKenneth E. Jansen solpar.iconvsclr = 2;
65659599516SKenneth E. Jansen else if((string)inp.GetValue("Scalar Advection Form") == "Conservative")
65759599516SKenneth E. Jansen solpar.iconvsclr = 1;
65859599516SKenneth E. Jansen if((string)inp.GetValue("Use Conservative Scalar Convection Velocity") == "True")
65959599516SKenneth E. Jansen sclrs.consrv_sclr_conv_vel = 1;
66059599516SKenneth E. Jansen else if((string)inp.GetValue("Use Conservative Scalar Convection Velocity") == "False")
66159599516SKenneth E. Jansen sclrs.consrv_sclr_conv_vel = 0;
66259599516SKenneth E. Jansen // TAU INPUT
66359599516SKenneth E. Jansen if((string)inp.GetValue("Tau Matrix") == "Diagonal-Shakib")
66459599516SKenneth E. Jansen genpar.itau = 0;
66559599516SKenneth E. Jansen else if((string)inp.GetValue("Tau Matrix") == "Diagonal-Franca")
66659599516SKenneth E. Jansen genpar.itau =1;
66759599516SKenneth E. Jansen else if((string)inp.GetValue("Tau Matrix") == "Diagonal-Jansen(dev)")
66859599516SKenneth E. Jansen genpar.itau = 2;
66959599516SKenneth E. Jansen else if((string)inp.GetValue("Tau Matrix") == "Diagonal-Compressible")
67059599516SKenneth E. Jansen genpar.itau = 3;
67159599516SKenneth E. Jansen else if((string)inp.GetValue("Tau Matrix") == "Matrix-Mallet")
67259599516SKenneth E. Jansen genpar.itau = 10;
67359599516SKenneth E. Jansen else if((string)inp.GetValue("Tau Matrix") == "Matrix-Modal")
67459599516SKenneth E. Jansen genpar.itau = 11;
67559599516SKenneth E. Jansen
67659599516SKenneth E. Jansen genpar.dtsfct = inp.GetValue("Tau Time Constant");
67759599516SKenneth E. Jansen genpar.taucfct = inp.GetValue("Tau C Scale Factor");
67859599516SKenneth E. Jansen
679513954efSKenneth E. Jansen genpar.iLHScond = inp.GetValue("LHS BC heat flux enable");
680513954efSKenneth E. Jansen
68159599516SKenneth E. Jansen // FLOW DISCONTINUITY CAPTURING
68259599516SKenneth E. Jansen
68359599516SKenneth E. Jansen if((string)inp.GetValue("Discontinuity Capturing") == "Off") solpar.iDC = 0;
68459599516SKenneth E. Jansen else if((string)inp.GetValue("Discontinuity Capturing") == "DC-mallet") solpar.iDC = 1;
68559599516SKenneth E. Jansen else if((string)inp.GetValue("Discontinuity Capturing") == "DC-quadratic") solpar.iDC = 2;
68659599516SKenneth E. Jansen else if((string)inp.GetValue("Discontinuity Capturing") == "DC-minimum") solpar.iDC = 3;
68759599516SKenneth E. Jansen else {
68859599516SKenneth E. Jansen cout<< "Condition not defined for Discontinuity Capturing \n ";
68959599516SKenneth E. Jansen exit(1);
69059599516SKenneth E. Jansen }
69159599516SKenneth E. Jansen
69259599516SKenneth E. Jansen // SCALAR DISCONTINUITY CAPTURING
69359599516SKenneth E. Jansen
69459599516SKenneth E. Jansen vector<int> ivec = inp.GetValue("Scalar Discontinuity Capturing");
69559599516SKenneth E. Jansen for(i=0; i< 2; i++) solpar.idcsclr[i] = ivec[i];
69659599516SKenneth E. Jansen ivec.erase(ivec.begin(),ivec.end());
69759599516SKenneth E. Jansen
69859599516SKenneth E. Jansen
69959599516SKenneth E. Jansen // if((string)inp.GetValue("Scalar Discontinuity Capturing") == "No") solpar.idcsclr = 0;
70059599516SKenneth E. Jansen // else if((string)inp.GetValue("Scalar Discontinuity Capturing") == "1") solpar.idcsclr = 1;
70159599516SKenneth E. Jansen // else if((string)inp.GetValue("Scalar Discontinuity Capturing") == "2") solpar.idcsclr = 2;
70259599516SKenneth E. Jansen // else {
70359599516SKenneth E. Jansen // cout<< "Condition not defined for Scalar Discontinuity Capturing \n ";
70459599516SKenneth E. Jansen // exit(1);
70559599516SKenneth E. Jansen // }
70659599516SKenneth E. Jansen if((string)inp.GetValue("Include Viscous Correction in Stabilization") == "True")
70759599516SKenneth E. Jansen {
70859599516SKenneth E. Jansen if(genpar.ipord == 1 ) genpar.idiff = 1;
70959599516SKenneth E. Jansen else genpar.idiff = 2;
71059599516SKenneth E. Jansen }
71159599516SKenneth E. Jansen else { genpar.idiff = 0;}
71259599516SKenneth E. Jansen
713513954efSKenneth E. Jansen // ------ Only For duct S duct Project ------------------------------------------------
71459599516SKenneth E. Jansen genpar.irampViscOutlet = (int)inp.GetValue("Ramp Up Viscosity Near Outlet");
71559599516SKenneth E. Jansen
71659599516SKenneth E. Jansen genpar.istretchOutlet = (int)inp.GetValue("Stretch X Coordinate Near Outlet");
717513954efSKenneth E. Jansen // -----------------------------------------------------------------------------------
71859599516SKenneth E. Jansen
71959599516SKenneth E. Jansen genpar.iremoveStabTimeTerm = (int)inp.GetValue("Remove Time Term from Stabilization");
72059599516SKenneth E. Jansen
72159599516SKenneth E. Jansen timdat.flmpl = inp.GetValue("Lumped Mass Fraction on Left-hand-side");
72259599516SKenneth E. Jansen timdat.flmpr = inp.GetValue("Lumped Mass Fraction on Right-hand-side");
72359599516SKenneth E. Jansen
72459599516SKenneth E. Jansen timdat.iCFLworst = 0;
72559599516SKenneth E. Jansen if((string)inp.GetValue("Dump CFL") == "True")
72659599516SKenneth E. Jansen timdat.iCFLworst = 1;
72759599516SKenneth E. Jansen
72859599516SKenneth E. Jansen intdat.intg[0][0]=inp.GetValue("Quadrature Rule on Interior");
72959599516SKenneth E. Jansen intdat.intg[0][1]=inp.GetValue("Quadrature Rule on Boundary");
73059599516SKenneth E. Jansen genpar.ibksiz = inp.GetValue("Number of Elements Per Block");
73159599516SKenneth E. Jansen
73259599516SKenneth E. Jansen ((string)inp.GetValue("Turn Off Source Terms for Scalars")
73359599516SKenneth E. Jansen == "True") ? sclrs.nosource = 1 : sclrs.nosource = 0;
73459599516SKenneth E. Jansen sclrs.tdecay=inp.GetValue("Decay Multiplier for Scalars");
73559599516SKenneth E. Jansen
73659599516SKenneth E. Jansen // TURBULENCE MODELING PARAMETER
73759599516SKenneth E. Jansen int tpturb = turbvari.iles-turbvari.irans;
73859599516SKenneth E. Jansen int ifrule;
73959599516SKenneth E. Jansen if( tpturb != 0 ){
74059599516SKenneth E. Jansen
74159599516SKenneth E. Jansen
74259599516SKenneth E. Jansen turbvari.nohomog =inp.GetValue("Number of Homogenous Directions");
74359599516SKenneth E. Jansen
74459599516SKenneth E. Jansen if((string)inp.GetValue("Turbulence Wall Model Type") == "Slip Velocity") turbvar.itwmod = 1;
74559599516SKenneth E. Jansen else if((string)inp.GetValue("Turbulence Wall Model Type") == "Effective Viscosity") turbvar.itwmod = 2;
74659599516SKenneth E. Jansen else turbvar.itwmod = 0;
74759599516SKenneth E. Jansen if (turbvari.irans < 0) turbvar.itwmod = turbvar.itwmod*(-1);
74859599516SKenneth E. Jansen ifrule = inp.GetValue("Velocity Averaging Steps");
74959599516SKenneth E. Jansen turbvar.wtavei =(ifrule >0)? 1.0/ifrule : -1.0/ifrule;
75059599516SKenneth E. Jansen
75159599516SKenneth E. Jansen if(turbvari.iles == 1){
75259599516SKenneth E. Jansen
75359599516SKenneth E. Jansen if((string)inp.GetValue("Dynamic Model Type") == "Bardina") turbvari.iles += 10;
75459599516SKenneth E. Jansen else if((string)inp.GetValue("Dynamic Model Type") == "Projection") turbvari.iles += 20;
75559599516SKenneth E. Jansen
75659599516SKenneth E. Jansen ifrule = inp.GetValue("Filter Integration Rule");
75759599516SKenneth E. Jansen turbvari.iles += ifrule-1;
75859599516SKenneth E. Jansen ifrule = inp.GetValue("Dynamic Model Averaging Steps");
75959599516SKenneth E. Jansen turbvar.dtavei = (ifrule >0)? 1.0/ifrule : -1.0/ifrule;
76059599516SKenneth E. Jansen turbvar.fwr1 = inp.GetValue("Filter Width Ratio");
76159599516SKenneth E. Jansen turbvar.flump = inp.GetValue("Lumping Factor for Filter");
76259599516SKenneth E. Jansen
76359599516SKenneth E. Jansen
76459599516SKenneth E. Jansen if ((string)inp.GetValue("Model Statistics") == "True" ) {
76559599516SKenneth E. Jansen turbvari.modlstats = 1; }
76659599516SKenneth E. Jansen else {
76759599516SKenneth E. Jansen turbvari.modlstats = 0; }
76859599516SKenneth E. Jansen
76959599516SKenneth E. Jansen if ((string)inp.GetValue("Double Filter") == "True" ) {
77059599516SKenneth E. Jansen turbvari.i2filt = 1; }
77159599516SKenneth E. Jansen else {
77259599516SKenneth E. Jansen turbvari.i2filt = 0; }
77359599516SKenneth E. Jansen
77459599516SKenneth E. Jansen if ((string)inp.GetValue("Model/SUPG Dissipation") == "True" ) {
77559599516SKenneth E. Jansen turbvari.idis = 1; }
77659599516SKenneth E. Jansen else {
77759599516SKenneth E. Jansen turbvari.idis = 0; }
77859599516SKenneth E. Jansen
77959599516SKenneth E. Jansen
78059599516SKenneth E. Jansen if((string)inp.GetValue("Dynamic Model Type") == "Standard") {
78159599516SKenneth E. Jansen
78259599516SKenneth E. Jansen if((string)inp.GetValue("Dynamic Sub-Model Type") == "None")
78359599516SKenneth E. Jansen turbvari.isubmod = 0;
78459599516SKenneth E. Jansen else if((string)inp.GetValue("Dynamic Sub-Model Type") =="DFWR")
78559599516SKenneth E. Jansen turbvari.isubmod = 1;
78659599516SKenneth E. Jansen else if((string)inp.GetValue("Dynamic Sub-Model Type") =="SUPG")
78759599516SKenneth E. Jansen turbvari.isubmod = 2;
78859599516SKenneth E. Jansen }
78959599516SKenneth E. Jansen else if((string)inp.GetValue("Dynamic Model Type") == "Projection") {
79059599516SKenneth E. Jansen
79159599516SKenneth E. Jansen if((string)inp.GetValue("Projection Filter Type") == "Linear")
79259599516SKenneth E. Jansen turbvari.ifproj = 0;
79359599516SKenneth E. Jansen else if((string)inp.GetValue("Projection Filter Type") =="Quadratic")
79459599516SKenneth E. Jansen turbvari.ifproj = 1;
79559599516SKenneth E. Jansen
79659599516SKenneth E. Jansen if((string)inp.GetValue("Dynamic Sub-Model Type") == "None")
79759599516SKenneth E. Jansen turbvari.isubmod = 0;
79859599516SKenneth E. Jansen else if((string)inp.GetValue("Dynamic Sub-Model Type") =="ConsistentProj")
79959599516SKenneth E. Jansen turbvari.isubmod = 1;
80059599516SKenneth E. Jansen }
80159599516SKenneth E. Jansen
80259599516SKenneth E. Jansen }
80359599516SKenneth E. Jansen }
80459599516SKenneth E. Jansen
80559599516SKenneth E. Jansen // SPEBC MODELING PARAMETERS
80659599516SKenneth E. Jansen
80759599516SKenneth E. Jansen if ( (spebcvr.irscale = inp.GetValue("SPEBC Model Active")) >= 0 ){
80859599516SKenneth E. Jansen
80959599516SKenneth E. Jansen ifrule = inp.GetValue("Velocity Averaging Steps");
81059599516SKenneth E. Jansen turbvar.wtavei =(ifrule >0)? 1.0/ifrule : 1.0/inpdat.nstep[0];
81159599516SKenneth E. Jansen spebcvr.intpres = inp.GetValue("Interpolate Pressure");
81259599516SKenneth E. Jansen spebcvr.plandist = inp.GetValue("Distance between Planes");
81359599516SKenneth E. Jansen spebcvr.thetag = inp.GetValue("Theta Angle of Arc");
81459599516SKenneth E. Jansen spebcvr.ds = inp.GetValue("Distance for Velocity Averaging");
81559599516SKenneth E. Jansen spebcvr.tolerence = inp.GetValue("SPEBC Cylindrical Tolerance");
81659599516SKenneth E. Jansen spebcvr.radcyl = inp.GetValue("Radius of recycle plane");
81759599516SKenneth E. Jansen spebcvr.rbltin = inp.GetValue("Inlet Boundary Layer Thickness");
81859599516SKenneth E. Jansen spebcvr.rvscal = inp.GetValue("Vertical Velocity Scale Factor");
81959599516SKenneth E. Jansen }
82059599516SKenneth E. Jansen
82159599516SKenneth E. Jansen // CARDIOVASCULAR MODELING PARAMETERS
82259599516SKenneth E. Jansen if ( (string)inp.GetValue("Time Varying Boundary Conditions From File") == "True")
82359599516SKenneth E. Jansen nomodule.itvn = 1;
82459599516SKenneth E. Jansen else
82559599516SKenneth E. Jansen nomodule.itvn = 0;
82659599516SKenneth E. Jansen
82759599516SKenneth E. Jansen if ( nomodule.itvn ==1)
82859599516SKenneth E. Jansen nomodule.bcttimescale = inp.GetValue("BCT Time Scale Factor");
82959599516SKenneth E. Jansen
83059599516SKenneth E. Jansen nomodule.ipvsq=0;
831513954efSKenneth E. Jansen if( (nomodule.icardio = inp.GetValue("Number of Coupled Surfaces")) ){
83259599516SKenneth E. Jansen if ( nomodule.icardio > MAXSURF ) {
83359599516SKenneth E. Jansen cout << "Number of Coupled Surfaces > MAXSURF \n";
83459599516SKenneth E. Jansen exit(1);
83559599516SKenneth E. Jansen }
83659599516SKenneth E. Jansen if ( (string)inp.GetValue("Pressure Coupling") == "None")
83759599516SKenneth E. Jansen nomodule.ipvsq=0;
83859599516SKenneth E. Jansen if ( (string)inp.GetValue("Pressure Coupling") == "Explicit")
83959599516SKenneth E. Jansen nomodule.ipvsq=1;
84059599516SKenneth E. Jansen if ( (string)inp.GetValue("Pressure Coupling") == "Implicit")
84159599516SKenneth E. Jansen nomodule.ipvsq=2;
84259599516SKenneth E. Jansen if ( (string)inp.GetValue("Pressure Coupling") == "P-Implicit")
84359599516SKenneth E. Jansen nomodule.ipvsq=3;
84459599516SKenneth E. Jansen
845513954efSKenneth E. Jansen if( (nomodule.numResistSrfs=inp.GetValue("Number of Resistance Surfaces")) ){
84659599516SKenneth E. Jansen ivec = inp.GetValue("List of Resistance Surfaces");
84759599516SKenneth E. Jansen for(i=0;i<MAXSURF+1; i++) nomodule.nsrflistResist[i] = 0;
84859599516SKenneth E. Jansen for(i=0; i< nomodule.numResistSrfs; i++){
84959599516SKenneth E. Jansen nomodule.nsrflistResist[i+1] = ivec[i];
85059599516SKenneth E. Jansen }
85159599516SKenneth E. Jansen vec = inp.GetValue("Resistance Values");
85259599516SKenneth E. Jansen for(i =0; i< MAXSURF+1 ; i++) nomodule.ValueListResist[i] = 0;
85359599516SKenneth E. Jansen for(i =0; i< nomodule.numResistSrfs ; i++) nomodule.ValueListResist[i+1] = vec[i];
85459599516SKenneth E. Jansen vec.erase(vec.begin(),vec.end());
85559599516SKenneth E. Jansen }
856513954efSKenneth E. Jansen if( (nomodule.numImpSrfs=inp.GetValue("Number of Impedance Surfaces")) ){
85759599516SKenneth E. Jansen ivec = inp.GetValue("List of Impedance Surfaces");
85859599516SKenneth E. Jansen for(i=0;i<MAXSURF+1; i++) nomodule.nsrflistImp[i] = 0;
85959599516SKenneth E. Jansen for(i=0; i< nomodule.numImpSrfs; i++){
86059599516SKenneth E. Jansen nomodule.nsrflistImp[i+1] = ivec[i];
86159599516SKenneth E. Jansen }
86259599516SKenneth E. Jansen if ( (string)inp.GetValue("Impedance From File") == "True")
86359599516SKenneth E. Jansen nomodule.impfile = 1; else nomodule.impfile = 0;
86459599516SKenneth E. Jansen }
865513954efSKenneth E. Jansen if( (nomodule.numRCRSrfs=inp.GetValue("Number of RCR Surfaces")) ){
86659599516SKenneth E. Jansen ivec = inp.GetValue("List of RCR Surfaces");
86759599516SKenneth E. Jansen for(i=0;i<MAXSURF+1; i++) nomodule.nsrflistRCR[i] = 0;
86859599516SKenneth E. Jansen for(i=0; i< nomodule.numRCRSrfs; i++){
86959599516SKenneth E. Jansen nomodule.nsrflistRCR[i+1] = ivec[i];
87059599516SKenneth E. Jansen }
87159599516SKenneth E. Jansen if ( (string)inp.GetValue("RCR Values From File") == "True")
87259599516SKenneth E. Jansen nomodule.ircrfile = 1; else nomodule.ircrfile = 0;
87359599516SKenneth E. Jansen }
87459599516SKenneth E. Jansen }
87559599516SKenneth E. Jansen nomodule.ideformwall = 0;
87659599516SKenneth E. Jansen if((string)inp.GetValue("Deformable Wall")=="True"){
87759599516SKenneth E. Jansen nomodule.ideformwall = 1;
87859599516SKenneth E. Jansen nomodule.rhovw = inp.GetValue("Density of Vessel Wall");
87959599516SKenneth E. Jansen nomodule.thicknessvw = inp.GetValue("Thickness of Vessel Wall");
88059599516SKenneth E. Jansen nomodule.evw = inp.GetValue("Young Mod of Vessel Wall");
88159599516SKenneth E. Jansen nomodule.rnuvw = inp.GetValue("Poisson Ratio of Vessel Wall");
88259599516SKenneth E. Jansen nomodule.rshearconstantvw = inp.GetValue("Shear Constant of Vessel Wall");
88359599516SKenneth E. Jansen if((string)inp.GetValue("Wall Mass Matrix for LHS") == "True") nomodule.iwallmassfactor = 1;
88459599516SKenneth E. Jansen else nomodule.iwallmassfactor = 0;
88559599516SKenneth E. Jansen if((string)inp.GetValue("Wall Stiffness Matrix for LHS") == "True") nomodule.iwallstiffactor = 1;
88659599516SKenneth E. Jansen else nomodule.iwallstiffactor = 0;
88759599516SKenneth E. Jansen }
88859599516SKenneth E. Jansen nomodule.iviscflux = 1;
88959599516SKenneth E. Jansen if((string)inp.GetValue("Viscous Flux Flag") == "True") nomodule.iviscflux = 1;
89059599516SKenneth E. Jansen if((string)inp.GetValue("Viscous Flux Flag") == "False") nomodule.iviscflux = 0;
89159599516SKenneth E. Jansen
89259599516SKenneth E. Jansen
89359599516SKenneth E. Jansen // Scaling Parameters Keywords
89459599516SKenneth E. Jansen
89559599516SKenneth E. Jansen outpar.ro = inp.GetValue("Density");
89659599516SKenneth E. Jansen outpar.vel = inp.GetValue("Velocity");
89759599516SKenneth E. Jansen outpar.press = inp.GetValue("Pressure");
89859599516SKenneth E. Jansen outpar.temper = inp.GetValue("Temperature");
89959599516SKenneth E. Jansen outpar.entrop = inp.GetValue("Entropy");
90059599516SKenneth E. Jansen
90159599516SKenneth E. Jansen // Step Sequencing
90259599516SKenneth E. Jansen
90359599516SKenneth E. Jansen
90459599516SKenneth E. Jansen ivec = inp.GetValue("Step Construction");
90559599516SKenneth E. Jansen sequence.seqsize = ivec.size();
90659599516SKenneth E. Jansen if( sequence.seqsize > 100 || sequence.seqsize < 2 )
90759599516SKenneth E. Jansen cerr<<"Sequence size must be between 2 and 100 "<<endl;
90859599516SKenneth E. Jansen
90959599516SKenneth E. Jansen for(i=0; i< sequence.seqsize; i++)
91059599516SKenneth E. Jansen sequence.stepseq[i] = ivec[i];
91159599516SKenneth E. Jansen
91259599516SKenneth E. Jansen }
91359599516SKenneth E. Jansen catch ( exception &e ) {
91459599516SKenneth E. Jansen cout << endl << "Input exception: " << e.what() << endl << endl;
91559599516SKenneth E. Jansen ierr = 001;
91659599516SKenneth E. Jansen print_error_code(ierr);
91759599516SKenneth E. Jansen return ierr;
91859599516SKenneth E. Jansen }
91959599516SKenneth E. Jansen
92059599516SKenneth E. Jansen return ierr;
92159599516SKenneth E. Jansen
92259599516SKenneth E. Jansen }
92359599516SKenneth E. Jansen
print_error_code(int ierr)92459599516SKenneth E. Jansen void print_error_code(int ierr) {
92559599516SKenneth E. Jansen /*
92659599516SKenneth E. Jansen Return Error codes:
92759599516SKenneth E. Jansen 0xx Input error
92859599516SKenneth E. Jansen 1xx Solution Control
92959599516SKenneth E. Jansen 105 Turbulence Model not supported
93059599516SKenneth E. Jansen
93159599516SKenneth E. Jansen 2xx Material Properties
93259599516SKenneth E. Jansen
93359599516SKenneth E. Jansen 3xx Output Control
93459599516SKenneth E. Jansen
93559599516SKenneth E. Jansen 4xx Discretization Control
93659599516SKenneth E. Jansen
93759599516SKenneth E. Jansen 5xx Scaling Parameters
93859599516SKenneth E. Jansen
93959599516SKenneth E. Jansen 6xx Linear Solver Control
94059599516SKenneth E. Jansen 601 linear solver type not supported
94159599516SKenneth E. Jansen */
94259599516SKenneth E. Jansen cout << endl << endl << "Input error detected: " << endl << endl;
94359599516SKenneth E. Jansen if ( ierr == 001 ) {
94459599516SKenneth E. Jansen cout << endl << "Input Directive not understood" << endl << endl;
94559599516SKenneth E. Jansen }
94659599516SKenneth E. Jansen if ( ierr == 105 ) {
94759599516SKenneth E. Jansen cout << endl << "Turbulence Model Not Supported" << endl << endl;
94859599516SKenneth E. Jansen }
94959599516SKenneth E. Jansen if ( ierr == 601 ) {
95059599516SKenneth E. Jansen cout << endl << "Linear Solver Type Not Supported" << endl << endl;
95159599516SKenneth E. Jansen }
95259599516SKenneth E. Jansen
95359599516SKenneth E. Jansen }
954