diff --git a/src/main.cpp b/src/main.cpp index c41d69c529675d3179c6f82ad2a4d236f4cf2286..9f3e6482890f4354de078896faa811bf93e9583d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -227,7 +227,8 @@ int main(int argc, char *argv[]) fout.precision(15); for (size_t j=0; j<mesh.numberOfCells(); ++j) { //fout << xj[j][0] << ' ' << Ej[j] << ' ' << (-(std::cos(pi*xj[j][0])*std::cos(pi*xj[j][0]))+(std::sin(pi*xj[j][0])*std::sin(pi*xj[j][0])))*0.5*(std::exp(-4.*pi*pi*0.2)-1.) + 2. <<'\n'; // cas k constant - fout << xj[j][0] << ' ' << Ej[j] << ' ' << (0.5*pi*pi*xj[j][0]*(std::sin(pi*xj[j][0])*std::sin(pi*xj[j][0]) - std::cos(pi*xj[j][0])*std::cos(pi*xj[j][0])) - cos(xj[j][0])*sin(xj[j][0])*pi*0.5)*(std::exp(-2.*0.2) - 1.) + 2. <<'\n' ; // cas k non constant + fout << xj[j][0] << ' ' << Ej[j] << ' ' << ((xj[j][0]*pi*pi*0.5)*(std::sin(pi*xj[j][0])*std::sin(pi*xj[j][0]) - std::cos(xj[j][0]*pi)*std::cos(pi*xj[j][0])) - pi*0.5*std::sin(pi*xj[j][0])*std::cos(pi*xj[j][0]))*(std::exp(-2.*0.2)-1.) + 2. <<'\n' ; // cas k non constant + } } diff --git a/src/scheme/FiniteVolumesDiffusion.hpp b/src/scheme/FiniteVolumesDiffusion.hpp index 9a1f422b853b765aec0e63b8c14245d4e7bd65e5..275214ac9e0c580227eb2da7f8d67a3eaa6870df 100644 --- a/src/scheme/FiniteVolumesDiffusion.hpp +++ b/src/scheme/FiniteVolumesDiffusion.hpp @@ -157,11 +157,11 @@ private: m_Gl(l) = (1./sum2)*Fl(l)*sum; }); - // Conditions aux bords - m_Gl(0) = Fl(0)*uL(0); - m_Gl(m_mesh.numberOfFaces()-1) = Fl(m_mesh.numberOfFaces()-1)*uR(0); - - return m_Gl ; + // Conditions aux bords + m_Gl(0) = Fl(0)*uL(0); + m_Gl(m_mesh.numberOfFaces()-1) = Fl(m_mesh.numberOfFaces()-1)*uR(0); + + return m_Gl ; } @@ -364,7 +364,7 @@ public: double exact_E = 0.; for (size_t j=0; j<m_mesh.numberOfCells(); ++j) { //exact_E = (-(std::cos(pi*xj[j][0])*std::cos(pi*xj[j][0]))+(std::sin(pi*xj[j][0])*std::sin(pi*xj[j][0])))*0.5*(std::exp(-4.*pi*pi*0.2)-1.) + 2.; - exact_E = (0.5*pi*pi*xj[j][0]*(std::sin(pi*xj[j][0])*std::sin(pi*xj[j][0]) - std::cos(pi*xj[j][0])*std::cos(pi*xj[j][0])) - cos(xj[j][0])*sin(xj[j][0])*pi*0.5)*(std::exp(-2.*0.2) - 1.) + 2; + exact_E = ((xj[j][0]*pi*pi*0.5)*(std::sin(pi*xj[j][0])*std::sin(pi*xj[j][0]) - std::cos(xj[j][0]*pi)*std::cos(pi*xj[j][0])) - pi*0.5*std::sin(pi*xj[j][0])*std::cos(pi*xj[j][0]))*(std::exp(-2.*0.2)-1.) + 2.; err_E += (exact_E - Ej[j])*(exact_E - Ej[j])*Vj(j); } err_E = std::sqrt(err_E); @@ -406,6 +406,8 @@ public: const Kokkos::View<const double*> Vj = m_mesh_data.Vj(); + const Kokkos::View<const Rd*> xj = m_mesh_data.xj(); + double sum = 0.; for (size_t j=0; j<m_mesh.numberOfCells(); ++j) { @@ -413,7 +415,7 @@ public: } return sum; - + } diff --git a/src/scheme/FiniteVolumesEulerUnknowns.hpp b/src/scheme/FiniteVolumesEulerUnknowns.hpp index 71700408b0783c06dbc8c276aefff8ed9303b214..06610a3f2a18bb038ea4c2166b9e084ca0472c75 100644 --- a/src/scheme/FiniteVolumesEulerUnknowns.hpp +++ b/src/scheme/FiniteVolumesEulerUnknowns.hpp @@ -288,8 +288,8 @@ void initializeSod() m_uL[0] = zero; m_uR[0] = zero; - m_kL[0] = 2.; - m_kR[0] = 2.; + m_kL[0] = 0.; + m_kR[0] = 1.; }