diff --git a/ConSol/ConSol/Source/AxisymmEuler_std_noSwirl.cpp b/ConSol/ConSol/Source/AxisymmEuler_std_noSwirl.cpp index e43cc7a..1b3b3d5 100644 --- a/ConSol/ConSol/Source/AxisymmEuler_std_noSwirl.cpp +++ b/ConSol/ConSol/Source/AxisymmEuler_std_noSwirl.cpp @@ -1,76 +1,76 @@ // // Created by Fabian Moenkeberg on 2020-02-13. // #include "AxisymmEuler_std_noSwirl.hpp" std::vector AxisymmEuler_std_noSwirl::source(std::vector> &U, MeshBase *mesh, double t, double dt, int iCell){ std::vector ret(U[iCell].size(),0); long double rho, p, m1, m2, E; rho = U[iCell][0]; m1 = U[iCell][1]; m2 = U[iCell][2]; E = U[iCell][3]; p = (gamma - 1)*(E - 0.5*(m1*m1 + m2*m2)/rho); // if (iCell == 2225){ // std::cout << iCell; // } std::vector r = mesh->MidPoint(iCell); ret[0] = -m2/r[1]; ret[1] = -m1*m2/rho/r[1]; ret[2] = -m2*m2/rho/r[1]; ret[3] = -m2/rho*(E+p)/r[1]; return ret; } void AxisymmEuler_std_noSwirl::source(std::vector> &U, MeshBase *mesh, double t, double dt,std::vector> &numFlux){ omp_set_num_threads(nThreads); #pragma omp parallel for for (int i = 0; i < nCells;i++) { long double rho, p, m1, m2, E; int iCell = mesh->getInternal(i); rho = U[iCell][0]; m1 = U[iCell][1]; m2 = U[iCell][2]; E = U[iCell][3]; p = (gamma - 1) * (E - 0.5 * (m1 * m1 + m2 * m2) / rho); // if (iCell == 2225){ // std::cout << iCell; // } std::vector> xCoord = mesh->getXCoordOfCell(iCell); double r = (xCoord[0][1] + xCoord[1][1] + xCoord[2][1])/3; - numFlux[iCell][0] = -m2 / r; - numFlux[iCell][1] = -m1 * m2 / rho / r; - numFlux[iCell][2] = -m2 * m2 / rho / r; - numFlux[iCell][3] = -m2 / rho * (E + p) / r; + numFlux[iCell][0] -= m2 / r; + numFlux[iCell][1] -= m1 * m2 / rho / r; + numFlux[iCell][2] -= m2 * m2 / rho / r; + numFlux[iCell][3] -= m2 / rho * (E + p) / r; } omp_set_num_threads(nThreads); #pragma omp parallel for for (int ii = 0; ii < nDomainsQUAD; ii++){ for (int i = 0; i < nX[ii]; i++) { for (int j = 0; j < nY[ii]; j++) { long double rho, p, m1, m2, E; int iCell = i+ngc+(j+ngc)*(nX[ii]+2*ngc) + submeshCell0[ii + nDomainsTRI + nDomainsTRIQUAD + nDomainsRT]; rho = U[iCell][0]; m1 = U[iCell][1]; m2 = U[iCell][2]; E = U[iCell][3]; p = (gamma - 1) * (E - 0.5 * (m1 * m1 + m2 * m2) / rho); double r = yMin[ii] + (j + 0.5)*dY[ii]; - numFlux[iCell][0] = -m2 / r; - numFlux[iCell][1] = -m1 * m2 / rho / r; - numFlux[iCell][2] = -m2 * m2 / rho / r; - numFlux[iCell][3] = -m2 / rho * (E + p) / r; + numFlux[iCell][0] -= m2 / r; + numFlux[iCell][1] -= m1 * m2 / rho / r; + numFlux[iCell][2] -= m2 * m2 / rho / r; + numFlux[iCell][3] -= m2 / rho * (E + p) / r; } } } } \ No newline at end of file