Skip to content
Snippets Groups Projects

USCSDPM v1.0

Merged Adrien Crovato requested to merge adri into master
All threads resolved!
2 files
+ 16
13
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 12
9
@@ -522,20 +522,23 @@ void Solver::postUnsteady(size_t imd, size_t ifq, sdpmVectorXcd const &etau, sdp
std::vector<std::vector<sdpmComplex>> cp012(elems.size(), std::vector<sdpmComplex>(3));
for (size_t i = 0; i < elems.size(); ++i)
{
// si = phi_t + 1/2 conv(u_k,u_k)_k - 1/2 u_inf^2
sdpmVectorXcd si(5);
si << 0., std::conj(-sdpmComplex(0, 1) * omega * emu(_rows[elems[i]])), -0.5 * ui.dot(ui), -sdpmComplex(0, 1) * omega * emu(_rows[elems[i]]), 0.;
// phi_t, phi_x
sdpmVector3cd phit(std::conj(-sdpmComplex(0, 1) * omega * emu(_rows[elems[i]])), 0., -sdpmComplex(0, 1) * omega * emu(_rows[elems[i]]));
sdpmVector3cd phix(_u1[imd][ifq][elems[i]->getId() - 1].conjugate()(0), _u[elems[i]->getId() - 1](0) - ui(0), _u1[imd][ifq][elems[i]->getId() - 1](0));
// 1 - phi_t
sdpmVectorXcd ecp(5);
ecp << 0., -2. * phit(0) / ui.dot(ui), 1., -2. * phit(2) / ui.dot(ui), 0.;
// phi_xx, phi_tt, phi_tx
ecp += mi * mi / ui.dot(ui) * (convolve(phix, phix) + convolve(phit, phit) + convolve(phix, phit) / ui.norm());
// conv(u_k,u_k)
for (size_t j = 0; j < 3; ++j)
{
sdpmVector3cd utrm(_u1[imd][ifq][elems[i]->getId() - 1].conjugate()(j), _u[elems[i]->getId() - 1](j), _u1[imd][ifq][elems[i]->getId() - 1](j));
si += 0.5 * convolve(utrm, utrm);
ecp -= convolve(utrm, utrm) / ui.dot(ui);
}
// ecp = -2 / u_inf^2 * si + 1/u_inf^2/a_inf^2 * conv(si, si)
sdpmVectorXcd ecp(9);
ecp << 0., 0., -2 * si / ui.dot(ui), 0., 0.;
ecp += convolve(si, si) * mi * mi / (ui.dot(ui) * ui.dot(ui));
// extract 0th, 1st and 2nd harmonics
for (size_t u = 0; u < 3; ++u)
cp012[i][u] = ecp(4 + u);
cp012[i][u] = ecp(2 + u);
_cp1[imd][ifq][elems[i]->getId() - 1] = cp012[i][1];
}
Loading