243 Velocity[i].size(), Velocity[i], Velocity[i]);
250 m_fields[0]->GetBoundaryNormals(n, normals);
275 m_fields[0]->ExtractElmtToBndPhys(n, grad[j], bndVal);
282 Vmath::Vmul(nqb, normals[i], 1, bndVal, 1, bndVal, 1);
299 m_fields[0]->ExtractElmtToBndPhys(n, Velocity[i], u[i]);
307 Vmath::Vvtvp(nqb, normals[i], 1, u[i], 1, un, 1, un, 1);
313 for (
int i = 0; i < nqb; i++)
315 S0[i] = 0.5 * (1.0 - tanh(un[i] / (
m_houtflow->m_U0 *
335 Vmath::Vvtvp(nqb, u[i], 1, bndVal, 1, E[i], 1, E[i], 1);
351 m_houtflow->m_UBndExp[i][n]->GetPhys(), 1, bndVal,
354 Vmath::Vvtvp(nqb, normals[i], 1, bndVal, 1, En, 1, En, 1);
366 m_PBndExp[n]->HomogeneousFwdTrans(nqb, pbc, bndVal);
378 int nbcoeffs =
m_PBndExp[n]->GetNcoeffs();
382 m_PBndExp[n]->HomogeneousFwdTrans(nqb, pbc, bndVal);
383 m_PBndExp[n]->IProductWRTBase(bndVal, bndCoeffs);
387 m_PBndExp[n]->IProductWRTBase(pbc, bndCoeffs);
392 bndCoeffs, 1,
m_PBndExp[n]->UpdateCoeffs(), 1,
426 Vmath::Smul(nqb, -1.0 * kinvis, divU, 1, bndVal, 1);
434 Vmath::Vvtvp(nqb, normals[i], 1, bndVal, 1, E[i], 1, divU, 1);
437 m_houtflow->m_UBndExp[i][n]->GetPhys(), 1, divU, 1);
444 u[i], 1, divU, 1, divU, 1);
447 if (
m_houtflow->m_UBndExp[i][n]->GetWaveSpace())
449 m_houtflow->m_UBndExp[i][n]->HomogeneousFwdTrans(nqb, divU,
454 divU,
m_houtflow->m_UBndExp[i][n]->UpdateCoeffs());
484 m_PBndExp[n]->HomogeneousBwdTrans(nqb, pbc, pbc);
492 m_fields[0]->GetBoundaryNormals(n, normals);
501 if (
m_houtflow->m_UBndExp[i][n]->GetWaveSpace())
503 m_houtflow->m_UBndExp[i][n]->HomogeneousFwdTrans(nqb, wk,
506 m_houtflow->m_UBndExp[i][n]->IProductWRTBase(wk, wk1);
510 m_houtflow->m_UBndExp[i][n]->UpdateCoeffs(), 1);
872 size_t n_points_0 =
m_fields[0]->GetExp(0)->GetTotPoints();
873 size_t n_element =
m_fields[0]->GetExpSize();
874 size_t nvel = inarray.size();
885 for (
size_t i = 0; i < nvel; ++i)
891 for (
size_t el = 0; el < n_element; ++el)
893 size_t n_points =
m_fields[0]->GetExp(el)->GetTotPoints();
894 ptsKeys =
m_fields[0]->GetExp(el)->GetPointsKeys();
897 if (n_points != n_points_0)
899 for (
size_t j = 0; j < nvel; ++j)
903 n_points_0 = n_points;
907 for (
size_t j = 0; j < nvel; ++j)
917 ->GetDerivFactors(ptsKeys);
919 if (
m_fields[0]->GetExp(el)->GetGeom()->GetMetricInfo()->GetGtype() ==
922 for (
size_t j = 0; j < nvel; ++j)
924 for (
size_t k = 0; k < nvel; ++k)
927 tmp = inarray[k] + cnt, 1, stdVelocity[j], 1,
934 for (
size_t j = 0; j < nvel; ++j)
936 for (
size_t k = 0; k < nvel; ++k)
939 tmp = inarray[k] + cnt, 1, stdVelocity[j], 1,
947 Vmath::Vmul(n_points, stdVelocity[0], 1, stdVelocity[0], 1,
949 for (
size_t k = 1; k < nvel; ++k)
951 Vmath::Vvtvp(n_points, stdVelocity[k], 1, stdVelocity[k], 1,
952 stdVelocity[0], 1, stdVelocity[0], 1);
954 pntVelocity =
Vmath::Vmax(n_points, stdVelocity[0], 1);
955 maxV[el] =
sqrt(pntVelocity);