65 int main(
int argc, 
char *argv[])
 
   67     string fname = std::string(argv[2]);
 
   68     int fdot = fname.find_last_of(
'.');
 
   69     if (fdot != std::string::npos)
 
   71         string ending = fname.substr(fdot);
 
   76         if (ending == 
".chk" || ending == 
".fld")
 
   78             fname = fname.substr(0,fdot);
 
   82     fname = fname + 
".txt";
 
   89     int nBndEdgePts, nBndEdges, nBndRegions;
 
   94                 "Usage: ExtractSurface3DCFS meshfile fieldFile\n");
 
   96                 "Extracts a surface from a 3D fld file" 
   97                 "(only for CompressibleFlowSolver and purely 3D .fld files)\n");
 
  102         = LibUtilities::SessionReader::CreateInstance(3, argv);
 
  104         SpatialDomains::MeshGraph::Read(vSession);
 
  106     std::string                         m_ViscosityType;
 
  119     int nDimensions = m_spacedim;
 
  123     ASSERTL0(vSession->DefinesParameter(
"Gamma"),
 
  124              "Compressible flow sessions must define a Gamma parameter.");
 
  125     vSession->LoadParameter(
"Gamma", m_gamma, 1.4);
 
  128     ASSERTL0(vSession->DefinesParameter(
"pInf"),
 
  129              "Compressible flow sessions must define a pInf parameter.");
 
  130     vSession->LoadParameter(
"pInf", m_pInf, 101325);
 
  133     ASSERTL0(vSession->DefinesParameter(
"rhoInf"),
 
  134              "Compressible flow sessions must define a rhoInf parameter.");
 
  135     vSession->LoadParameter(
"rhoInf", 
m_rhoInf, 1.225);
 
  138     ASSERTL0(vSession->DefinesParameter(
"uInf"),
 
  139              "Compressible flow sessions must define a uInf parameter.");
 
  140     vSession->LoadParameter(
"uInf", 
m_uInf, 0.1);
 
  143     if (m_spacedim == 2 || m_spacedim == 3)
 
  145         ASSERTL0(vSession->DefinesParameter(
"vInf"),
 
  146                  "Compressible flow sessions must define a vInf parameter" 
  147                  "for 2D/3D problems.");
 
  148         vSession->LoadParameter(
"vInf", 
m_vInf, 0.0);
 
  154         ASSERTL0(vSession->DefinesParameter(
"wInf"),
 
  155                  "Compressible flow sessions must define a wInf parameter" 
  157         vSession->LoadParameter(
"wInf", m_wInf, 0.0);
 
  160     vSession->LoadParameter (
"GasConstant",   m_gasConstant,   287.058);
 
  161     vSession->LoadParameter (
"Twall",         
m_Twall,         300.15);
 
  162     vSession->LoadSolverInfo(
"ViscosityType", m_ViscosityType, 
"Constant");
 
  163     vSession->LoadParameter (
"mu",            
m_mu,            1.78e-05);
 
  167     string                                          fieldFile(argv[2]);
 
  168     vector<LibUtilities::FieldDefinitionsSharedPtr> fieldDef;
 
  169     vector<vector<NekDouble> >                      fieldData;
 
  176     vector< vector<LibUtilities::PointsType> > pointsType;
 
  177     for (i = 0; i < fieldDef.size(); ++i)
 
  179         vector<LibUtilities::PointsType> ptype;
 
  180         for (j = 0; j < 3; ++j)
 
  184         pointsType.push_back(ptype);
 
  186     graphShPt->SetExpansionInfo(fieldDef, pointsType);
 
  193     int nfields = fieldDef[0]->m_fields.size();
 
  197     for(i = 0; i < pFields.size(); i++)
 
  200                                    ::DisContField>::AllocateSharedPtr(vSession, graphShPt,
 
  201                                                                         vSession->GetVariable(i));
 
  210     for (i = 1; i < nfields; ++i)
 
  218     if (pFields[0]->GetBndCondExpansions().size())
 
  222         nBndRegions = pFields[0]->GetBndCondExpansions().size();
 
  223         for (b = 0; b < nBndRegions; ++b)
 
  225             nBndEdges = pFields[0]->GetBndCondExpansions()[b]->GetExpSize();
 
  226             for (e = 0; e < nBndEdges; ++e)
 
  228                 nBndEdgePts = pFields[0]->
 
  229                     GetBndCondExpansions()[b]->GetExp(e)->GetTotPoints();
 
  231                 if (pFields[0]->GetBndConditions()[b]->
 
  232                     GetUserDefined() == 
"WallViscous" ||
 
  233                     pFields[0]->GetBndConditions()[b]->
 
  234                     GetUserDefined() == 
"WallAdiabatic" ||
 
  235                     pFields[0]->GetBndConditions()[b]->
 
  236                     GetUserDefined() == 
"Wall")
 
  238                     nSurfacePts += nBndEdgePts;
 
  245     int nSolutionPts = pFields[0]->GetNpoints();
 
  246     int nTracePts    = pFields[0]->GetTrace()->GetTotPoints();
 
  247     int nElements    = pFields[0]->GetExpSize();
 
  263     pFields[0]->GetCoords(x, y, z);
 
  265     pFields[0]->ExtractTracePhys(x, traceX);
 
  266     pFields[0]->ExtractTracePhys(y, traceY);
 
  267     pFields[0]->ExtractTracePhys(z, traceZ);
 
  277     for (j = 0; j < nfields; ++j)
 
  284         for (i = 0; i < fieldData.size(); ++i)
 
  286             Exp[j]->ExtractDataToCoeffs(fieldDef[i], fieldData[i],
 
  287                                         fieldDef[i]->m_fields[j],
 
  288                                         Exp[j]->UpdateCoeffs());
 
  290         Exp[j]->BwdTrans(Exp[j]->GetCoeffs(), Exp[j]->UpdatePhys());
 
  291         Vmath::Vcopy(nSolutionPts, Exp[j]->GetPhys(), 1, uFields[j], 1);
 
  292         pFields[0]->ExtractTracePhys(uFields[j], traceFields[j]);
 
  297     int nfieldsAdded = 34;
 
  301     for (j = 0; j < nfieldsAdded; ++j)
 
  321     for(i = 0; i < nDimensions; ++i)
 
  325     pFields[0]->GetTrace()->GetNormals(m_traceNormals);
 
  335     for(i = 0; i < nDimensions; ++i)
 
  346                  &m_traceNormals[0][0], 1,
 
  347                  &traceFieldsAdded[0][0], 1);
 
  351                  &m_traceNormals[1][0], 1,
 
  352                  &traceFieldsAdded[1][0], 1);
 
  356                  &m_traceNormals[2][0], 1,
 
  357                  &traceFieldsAdded[2][0], 1);
 
  363                 &m_traceNormals[0][0], 1,
 
  368                  &m_traceNormals[1][0], 1,
 
  372                  &m_traceNormals[2][0], 1,
 
  376     for (i = 0; i < m_spacedim; i++)
 
  379                       &NormH[0],1, &NormH[0],1);
 
  395                 &m_traceBinormals[0][0], 1);
 
  398                  &m_traceBinormals[0][0], 1,
 
  399                  &traceFieldsAdded[3][0], 1);
 
  420                 &m_traceBinormals[1][0], 1);
 
  423                  &m_traceBinormals[1][0], 1,
 
  424                  &traceFieldsAdded[4][0], 1);
 
  440                 &m_traceBinormals[2][0], 1);
 
  443                  &m_traceBinormals[2][0], 1,
 
  444                  &traceFieldsAdded[5][0], 1);
 
  460                 &m_traceTangents[0][0], 1);
 
  463                  &m_traceTangents[0][0], 1,
 
  464                  &traceFieldsAdded[6][0], 1);
 
  468                  &m_traceBinormals[2][0], 1,
 
  469                  &m_traceTangents[1][0], 1);
 
  472                  &m_traceTangents[1][0], 1,
 
  473                  &traceFieldsAdded[7][0], 1);
 
  494                 &m_traceTangents[2][0], 1);
 
  497                  &m_traceTangents[2][0], 1,
 
  498                  &traceFieldsAdded[8][0], 1);
 
  510     for (i = 0; i < m_spacedim; i++)
 
  513                     &uFields[i + 1][0], 1,
 
  514                     &uFields[i + 1][0], 1,
 
  534                 &uFields[nfields - 1][0], 1,
 
  543     pFields[0]->ExtractTracePhys(
pressure, traceFieldsAdded[9]);
 
  557     NekDouble GasConstantInv =  1.0/m_gasConstant;
 
  563     pFields[0]->ExtractTracePhys(temperature, traceFieldsAdded[10]);
 
  572     for (i = 0; i < nDimensions; ++ i)
 
  578     for (i = 0; i < nDimensions; ++ i)
 
  580         for (n = 0; n < nElements; n++)
 
  582             phys_offset = pFields[0]->GetPhys_Offset(n);
 
  584             pFields[i]->GetExp(n)->PhysDeriv(
 
  585                                              i, temperature + phys_offset,
 
  586                                              auxArray = Dtemperature[i] + phys_offset);
 
  589         pFields[0]->ExtractTracePhys(Dtemperature[i], traceDtemperature[i]);
 
  592     for(i = 0; i < nDimensions; ++i)
 
  595                     &m_traceNormals[i][0], 1,
 
  596                     &traceDtemperature[i][0], 1,
 
  600                     &traceFieldsAdded[11][0], 1,
 
  602                     &traceFieldsAdded[11][0], 1);
 
  616     for (i = 0; i < nDimensions; ++ i)
 
  622     for (i = 0; i < nDimensions; ++ i)
 
  624         for (n = 0; n < nElements; n++)
 
  626             phys_offset = pFields[0]->GetPhys_Offset(n);
 
  628             pFields[i]->GetExp(n)->PhysDeriv(
 
  630                                              auxArray = Dpressure[i] + phys_offset);
 
  633         pFields[0]->ExtractTracePhys(Dpressure[i], traceDpressure[i]);
 
  637     for(i = 0; i < nDimensions; ++i)
 
  640                     &m_traceTangents[i][0], 1,
 
  641                     &traceDpressure[i][0], 1,
 
  645                     &traceFieldsAdded[12][0], 1,
 
  647                     &traceFieldsAdded[12][0], 1);
 
  651     for(i = 0; i < nDimensions; ++i)
 
  654                     &m_traceBinormals[i][0], 1,
 
  655                     &traceDpressure[i][0], 1,
 
  659                     &traceFieldsAdded[13][0], 1,
 
  661                     &traceFieldsAdded[13][0], 1);
 
  667                  &traceDpressure[0][0], 1,
 
  668                  &traceFieldsAdded[14][0], 1);
 
  672                  &traceDpressure[1][0], 1,
 
  673                  &traceFieldsAdded[15][0], 1);
 
  677                  &traceDpressure[2][0], 1,
 
  678                  &traceFieldsAdded[16][0], 1);
 
  697     for (i = 0; i < nDimensions; ++ i)
 
  703         Vmath::Vdiv(nSolutionPts, uFields[i+1], 1, uFields[0], 1,
 
  706         for (j = 0; j < nDimensions; ++j)
 
  713     for (i = 0; i < nDimensions; ++i)
 
  715         for (j = 0; j < nDimensions; ++j)
 
  717             for (n = 0; n < nElements; n++)
 
  719                 phys_offset = pFields[0]->GetPhys_Offset(n);
 
  721                 pFields[i]->GetExp(n)->PhysDeriv(
 
  722                                                  j, velocity[i] + phys_offset,
 
  723                                                  auxArray = Dvelocity[i][j] + phys_offset);
 
  727             pFields[0]->ExtractTracePhys(Dvelocity[i][j], traceDvelocity[i][j]);
 
  732                  &traceDvelocity[0][0][0], 1,
 
  733                  &traceFieldsAdded[17][0], 1);
 
  735                  &traceDvelocity[0][1][0], 1,
 
  736                  &traceFieldsAdded[18][0], 1);
 
  738                  &traceDvelocity[0][2][0], 1,
 
  739                  &traceFieldsAdded[19][0], 1);
 
  741                  &traceDvelocity[1][0][0], 1,
 
  742                  &traceFieldsAdded[20][0], 1);
 
  744                  &traceDvelocity[1][1][0], 1,
 
  745                  &traceFieldsAdded[21][0], 1);
 
  747                  &traceDvelocity[1][2][0], 1,
 
  748                  &traceFieldsAdded[22][0], 1);
 
  750                  &traceDvelocity[2][0][0], 1,
 
  751                  &traceFieldsAdded[23][0], 1);
 
  753                  &traceDvelocity[2][1][0], 1,
 
  754                  &traceFieldsAdded[24][0], 1);
 
  756                  &traceDvelocity[2][2][0], 1,
 
  757                  &traceFieldsAdded[25][0], 1);
 
  778     if (m_ViscosityType == 
"Variable")
 
  784         for (
int i = 0; i < nSolutionPts; ++i)
 
  786             ratio = temperature[i] / T_star;
 
  787             mu[i] = mu_star * ratio * 
sqrt(ratio) *
 
  788                 (T_star + 110.0) / (temperature[i] + 110.0);
 
  801     Vmath::Smul(nSolutionPts, 2.0, &mu[0], 1, &mu2[0], 1);
 
  805                 &Dvelocity[0][0][0], 1, &divVel[0], 1);
 
  807                 &Dvelocity[1][1][0], 1, &divVel[0], 1);
 
  810     Vmath::Smul(nSolutionPts, lambda, &divVel[0], 1, &divVel[0], 1);
 
  811     Vmath::Vmul(nSolutionPts, &mu[0], 1, &divVel[0], 1, &divVel[0], 1);
 
  815     for (j = 0; j < m_spacedim; ++j)
 
  820         Vmath::Vmul(nSolutionPts, &mu2[0], 1, &Dvelocity[j][j][0], 1,
 
  823         Vmath::Vadd(nSolutionPts, &temp[j][0], 1, &divVel[0], 1, &Sgg[j][0], 1);
 
  833                 &Dvelocity[1][0][0], 1, &Sxy[0], 1);
 
  837                 &Dvelocity[2][0][0], 1, &Sxz[0], 1);
 
  841                 &Dvelocity[2][1][0], 1, &Syz[0], 1);
 
  844     Vmath::Vmul(nSolutionPts, &mu[0], 1, &Sxy[0], 1, &Sxy[0], 1);
 
  847     Vmath::Vmul(nSolutionPts, &mu[0], 1, &Sxz[0], 1, &Sxz[0], 1);
 
  850     Vmath::Vmul(nSolutionPts, &mu[0], 1, &Syz[0], 1, &Syz[0], 1);
 
  854     pFields[0]->ExtractTracePhys(Sgg[0], traceFieldsAdded[26]);
 
  855     pFields[0]->ExtractTracePhys(Sgg[1], traceFieldsAdded[27]);
 
  856     pFields[0]->ExtractTracePhys(Sgg[2], traceFieldsAdded[28]);
 
  857     pFields[0]->ExtractTracePhys(Sxy, traceFieldsAdded[29]);
 
  858     pFields[0]->ExtractTracePhys(Sxz, traceFieldsAdded[30]);
 
  859     pFields[0]->ExtractTracePhys(Syz, traceFieldsAdded[31]);
 
  865     pFields[0]->ExtractTracePhys(mu, traceFieldsAdded[32]);
 
  876     Vmath::Smul (nSolutionPts, gamma, soundspeed, 1, soundspeed, 1);
 
  877     Vmath::Vsqrt(nSolutionPts, soundspeed, 1, soundspeed, 1);
 
  882     for (
int i = 0; i < m_spacedim; ++i)
 
  890     Vmath::Vdiv(nSolutionPts,  mach, 1, uFields[0], 1, mach, 1);
 
  891     Vmath::Vdiv(nSolutionPts,  mach, 1, uFields[0], 1, mach, 1);
 
  893     Vmath::Vdiv(nSolutionPts,  mach, 1, soundspeed, 1, mach, 1);
 
  895     pFields[0]->ExtractTracePhys(mach, traceFieldsAdded[33]);
 
  902     if (pFields[0]->GetBndCondExpansions().size())
 
  906         nBndRegions = pFields[0]->GetBndCondExpansions().size();
 
  907         for (b = 0; b < nBndRegions; ++b)
 
  909             nBndEdges = pFields[0]->GetBndCondExpansions()[b]->GetExpSize();
 
  910             for (e = 0; e < nBndEdges; ++e)
 
  912                 nBndEdgePts = pFields[0]->
 
  913                     GetBndCondExpansions()[b]->GetExp(e)->GetTotPoints();
 
  915                 id2 = pFields[0]->GetTrace()->
 
  916                     GetPhys_Offset(pFields[0]->GetTraceMap()->
 
  917                                    GetBndCondIDToGlobalTraceID(cnt++));
 
  919                 if (pFields[0]->GetBndConditions()[b]->
 
  920                         GetUserDefined() == 
"WallViscous" ||
 
  921                     pFields[0]->GetBndConditions()[b]->
 
  922                         GetUserDefined() == 
"WallAdiabatic" ||
 
  923                     pFields[0]->GetBndConditions()[b]->
 
  924                         GetUserDefined() == 
"Wall")
 
  943     if (pFields[0]->GetBndCondExpansions().size())
 
  946         for (j = 0; j < nfields; ++j)
 
  948             cout << 
"field " << j << endl;
 
  952             nBndRegions = pFields[j]->GetBndCondExpansions().size();
 
  953             for (b = 0; b < nBndRegions; ++b)
 
  955                 nBndEdges = pFields[j]->GetBndCondExpansions()[b]->GetExpSize();
 
  956                 for (e = 0; e < nBndEdges; ++e)
 
  958                     nBndEdgePts = pFields[j]->
 
  959                         GetBndCondExpansions()[b]->GetExp(e)->GetTotPoints();
 
  961                     id2 = pFields[j]->GetTrace()->
 
  962                         GetPhys_Offset(pFields[j]->GetTraceMap()->
 
  963                                        GetBndCondIDToGlobalTraceID(cnt++));
 
  965                     if (pFields[j]->GetBndConditions()[b]->
 
  966                             GetUserDefined() == 
"WallViscous" ||
 
  967                         pFields[j]->GetBndConditions()[b]->
 
  968                             GetUserDefined() == 
"WallAdiabatic" ||
 
  969                         pFields[j]->GetBndConditions()[b]->
 
  970                             GetUserDefined() == 
"Wall")
 
  973                                      &surfaceFields[j][id1], 1);
 
  983     if (pFields[0]->GetBndCondExpansions().size())
 
  985         for (j = 0; j < nfieldsAdded; ++j)
 
  987             cout << 
"field added " << j << endl;
 
  991             nBndRegions = pFields[0]->GetBndCondExpansions().size();
 
  992             for (b = 0; b < nBndRegions; ++b)
 
  994                 nBndEdges = pFields[0]->GetBndCondExpansions()[b]->GetExpSize();
 
  995                 for (e = 0; e < nBndEdges; ++e)
 
  997                     nBndEdgePts = pFields[0]->
 
  998                         GetBndCondExpansions()[b]->GetExp(e)->GetTotPoints();
 
 1000                     id2 = pFields[0]->GetTrace()->
 
 1001                         GetPhys_Offset(pFields[0]->GetTraceMap()->
 
 1002                                        GetBndCondIDToGlobalTraceID(cnt++));
 
 1004                     if (pFields[0]->GetBndConditions()[b]->
 
 1005                             GetUserDefined() == 
"WallViscous" ||
 
 1006                         pFields[0]->GetBndConditions()[b]->
 
 1007                             GetUserDefined() == 
"WallAdiabatic" ||
 
 1008                         pFields[0]->GetBndConditions()[b]->
 
 1009                             GetUserDefined() == 
"Wall")
 
 1011                         Vmath::Vcopy(nBndEdgePts, &traceFieldsAdded[j][id2], 1,
 
 1012                                      &surfaceFieldsAdded[j][id1], 1);
 
 1027     outfile.open(fname.c_str());
 
 1028     outfile <<  
"%  x[m] " << 
" \t" 
 1040             << 
"rho[kg/m^3] " << 
" \t" 
 1041             << 
"rhou[kg/(m^2 s)] " << 
" \t" 
 1042             << 
"rhov[kg/(m^2 s)] " << 
" \t" 
 1043             << 
"rhow[kg/(m^2 s)] " << 
" \t" 
 1044             << 
"E[Pa] " << 
" \t" 
 1045             << 
"p[Pa] " << 
" \t" 
 1047             << 
"dT/dn[k/m]  "  << 
" \t" 
 1048             << 
"dp/dT[Pa/m]  " << 
" \t" 
 1049             << 
"dp/dB[Pa/m]  " << 
" \t" 
 1050             << 
"dp/dx[Pa/m]  " << 
" \t" 
 1051             << 
"dp/dy[Pa/m]  " << 
" \t" 
 1052             << 
"dp/dz[Pa/m]  " << 
" \t" 
 1053             << 
"du/dx[s^-1]  " << 
" \t" 
 1054             << 
"du/dy[s^-1]  " << 
" \t" 
 1055             << 
"du/dz[s^-1]  " << 
" \t" 
 1056             << 
"dv/dx[s^-1]  " << 
" \t" 
 1057             << 
"dv/dy[s^-1]  " << 
" \t" 
 1058             << 
"dv/dz[s^-1]  " << 
" \t" 
 1059             << 
"dw/dx[s^-1]  " << 
" \t" 
 1060             << 
"dw/dy[s^-1]  " << 
" \t" 
 1061             << 
"dw/dz[s^-1]  " << 
" \t" 
 1062             << 
"tau_xx[Pa]   " << 
" \t" 
 1063             << 
"tau_yy[Pa]   " << 
" \t" 
 1064             << 
"tau_zz[Pa]   " << 
" \t" 
 1065             << 
"tau_xy[Pa]   " << 
" \t" 
 1066             << 
"tau_xz[Pa]   " << 
" \t" 
 1067             << 
"tau_yz[Pa]   " << 
" \t" 
 1068             << 
"mu[Pa s]     " << 
" \t" 
 1071     for (i = 0; i < nSurfacePts; ++i)
 
 1073         outfile << scientific
 
 1076                 << surfaceX[i] << 
" \t " 
 1077                 << surfaceY[i] << 
" \t " 
 1078                 << surfaceZ[i] << 
" \t " 
 1079                 << surfaceFieldsAdded[0][i] << 
" \t " 
 1080                 << surfaceFieldsAdded[1][i] << 
" \t " 
 1081                 << surfaceFieldsAdded[2][i] << 
" \t " 
 1082                 << surfaceFieldsAdded[3][i] << 
" \t " 
 1083                 << surfaceFieldsAdded[4][i] << 
" \t " 
 1084                 << surfaceFieldsAdded[5][i] << 
" \t " 
 1085                 << surfaceFieldsAdded[6][i] << 
" \t " 
 1086                 << surfaceFieldsAdded[7][i] << 
" \t " 
 1087                 << surfaceFieldsAdded[8][i] << 
" \t " 
 1088                 << surfaceFields[0][i] << 
" \t " 
 1089                 << surfaceFields[1][i] << 
" \t " 
 1090                 << surfaceFields[2][i] << 
" \t " 
 1091                 << surfaceFields[3][i] << 
" \t " 
 1092                 << surfaceFields[4][i] << 
" \t " 
 1093                 << surfaceFieldsAdded[9][i] << 
" \t " 
 1094                 << surfaceFieldsAdded[10][i] << 
" \t " 
 1095                 << surfaceFieldsAdded[11][i] << 
" \t " 
 1096                 << surfaceFieldsAdded[12][i] << 
" \t " 
 1097                 << surfaceFieldsAdded[13][i] << 
" \t " 
 1098                 << surfaceFieldsAdded[14][i] << 
" \t " 
 1099                 << surfaceFieldsAdded[15][i] << 
" \t " 
 1100                 << surfaceFieldsAdded[16][i] << 
" \t " 
 1101                 << surfaceFieldsAdded[17][i] << 
" \t " 
 1102                 << surfaceFieldsAdded[18][i] << 
" \t " 
 1103                 << surfaceFieldsAdded[19][i] << 
" \t " 
 1104                 << surfaceFieldsAdded[20][i] << 
" \t " 
 1105                 << surfaceFieldsAdded[21][i] << 
" \t " 
 1106                 << surfaceFieldsAdded[22][i] << 
" \t " 
 1107                 << surfaceFieldsAdded[23][i] << 
" \t " 
 1108                 << surfaceFieldsAdded[24][i] << 
" \t " 
 1109                 << surfaceFieldsAdded[25][i] << 
" \t " 
 1110                 << surfaceFieldsAdded[26][i] << 
" \t " 
 1111                 << surfaceFieldsAdded[27][i] << 
" \t " 
 1112                 << surfaceFieldsAdded[28][i] << 
" \t " 
 1113                 << surfaceFieldsAdded[29][i] << 
" \t " 
 1114                 << surfaceFieldsAdded[30][i] << 
" \t " 
 1115                 << surfaceFieldsAdded[31][i] << 
" \t " 
 1116                 << surfaceFieldsAdded[32][i] << 
" \t " 
 1117                 << surfaceFieldsAdded[33][i] << 
" \t " 
 1120     outfile << endl << endl;
 
#define ASSERTL0(condition, msg)
 
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
 
void Import(const std::string &infilename, std::vector< FieldDefinitionsSharedPtr > &fielddefs, std::vector< std::vector< NekDouble > > &fielddata, FieldMetaDataMap &fieldinfomap, const Array< OneD, int > &ElementIDs)
This function allows for data to be imported from an FLD file when a session and/or communicator is n...
 
std::shared_ptr< SessionReader > SessionReaderSharedPtr
 
@ ePolyEvenlySpaced
1D Evenly-spaced points using Lagrange polynomial
 
std::shared_ptr< ExpList > ExpListSharedPtr
Shared pointer to an ExpList object.
 
std::shared_ptr< MeshGraph > MeshGraphSharedPtr
 
The above copyright notice and this permission notice shall be included.
 
void Vsqrt(int n, const T *x, const int incx, T *y, const int incy)
sqrt y = sqrt(x)
 
void Vmul(int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Multiply vector z = x*y.
 
void Vvtvp(int n, const T *w, const int incw, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
vvtvp (vector times vector plus vector): z = w*x + y
 
void Vadd(int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Add vector z = x+y.
 
void Smul(int n, const T alpha, const T *x, const int incx, T *y, const int incy)
Scalar multiply y = alpha*x.
 
void Vdiv(int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Multiply vector z = x/y.
 
void Fill(int n, const T alpha, T *x, const int incx)
Fill a vector with a constant value.
 
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
 
void Vsub(int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Subtract vector z = x-y.
 
scalarT< T > sqrt(scalarT< T > in)