Skip to content
Snippets Groups Projects
Commit aea6745c authored by Fanny CHOPOT's avatar Fanny CHOPOT
Browse files

ajout de Dj

parent 15304c42
No related branches found
No related tags found
No related merge requests found
...@@ -80,11 +80,11 @@ private: ...@@ -80,11 +80,11 @@ private:
const Kokkos::View<const unsigned int**>& cell_nodes = m_connectivity.cellNodes(); const Kokkos::View<const unsigned int**>& cell_nodes = m_connectivity.cellNodes();
const Kokkos::View<const unsigned short*> cell_nb_nodes const Kokkos::View<const unsigned short*> cell_nb_nodes
= m_connectivity.cellNbNodes(); = m_connectivity.cellNbNodes();
const Kokkos::View<const Rd*> xj = m_mesh_data.xj(); const Kokkos::View<const double*>& Dj = m_mesh_data.Dj();
Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j) { Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j) {
for (int r=0; r<cell_nb_nodes[j]; ++r) { for (int r=0; r<cell_nb_nodes[j]; ++r) {
m_Fjr(j,r) = ((kj(cell_nodes(j,r)) + kj(cell_nodes(j,r)-1))/(2*(xj(cell_nodes(j,r))-xj(cell_nodes(j,r)-1)))) * (uj(j,r),Cjr(j,r)); //tensorProduct(uj(j,r),Cjr(j,r)) ? m_Fjr(j,r) = ((kj(cell_nodes(j,r)) + kj(cell_nodes(j,r)-1))/(2*Dj(j))) * (uj(j,r),Cjr(j,r)); //tensorProduct(uj(j,r),Cjr(j,r)) ?
} }
}); });
...@@ -128,9 +128,7 @@ private: ...@@ -128,9 +128,7 @@ private:
// Enchaine les operations pour calculer les flux (Fjr et Gjr) pour // Enchaine les operations pour calculer les flux (Fjr et Gjr) pour
// pouvoir derouler le schema // pouvoir derouler le schema
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
void computeExplicitFluxes(const Kokkos::View<const Rd*>& xj, void computeExplicitFluxes(const Kokkos::View<const Rd*>& uj,
const Kokkos::View<const double*>& rhoj,
const Kokkos::View<const Rd*>& uj,
const Kokkos::View<const Rd**>& Cjr, const Kokkos::View<const Rd**>& Cjr,
const Kokkos::View<const double*>& kj) { const Kokkos::View<const double*>& kj) {
Kokkos::View<Rd**> Fjr = m_Fjr; Kokkos::View<Rd**> Fjr = m_Fjr;
...@@ -157,19 +155,20 @@ public: ...@@ -157,19 +155,20 @@ public:
// Calcule une evaluation du pas de temps verifiant le CFL parabolique // Calcule une evaluation du pas de temps verifiant le CFL parabolique
// Utilise la reduction definie dans la structure ReduceMin. Ici, dx_j=V_j // Utilise la reduction definie dans la structure ReduceMin. Ici, dx_j=V_j
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
double diffusion_dt(const Kokkos::View<const double*>& Vj, double diffusion_dt(const Kokkos::View<const double*>& rhoj,
const Kokkos::View<const double*>& rhoj,
const Kokkos::View<const double*>& kj) const { const Kokkos::View<const double*>& kj) const {
Kokkos::View<double*> dt_j("dt_j", m_mesh.numberOfCells()); Kokkos::View<double*> dt_j("dt_j", m_mesh.numberOfCells());
const Kokkos::View<const Rd*> xj = m_mesh_data.xj();
const Kokkos::View<const Rd**> Cjr = m_mesh_data.Cjr(); const Kokkos::View<const Rd**> Cjr = m_mesh_data.Cjr();
const Kokkos::View<const double*>& Dj = m_mesh_data.Dj();
const Kokkos::View<const double*>& Vj = m_mesh_data.Vj();
Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j){ Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j){
dt_j[j] dt_j[j]
= rhoj(j)*Vj(j)*(2./(kj(j+1) + 2*kj(j) + kj(j-1))) = rhoj(j)*Vj(j)*(2./(kj(j+1) + 2*kj(j) + kj(j-1)))
* std::min(Dj(j+1),Dj(j));
// * std::min(xj(j+1)-xj(j), xj(j)-xj(j-1)); // * std::min(xj(j+1)-xj(j), xj(j)-xj(j-1));
* std::min((xj(j+1),Cjr(j,1)) + (xj(j),Cjr(j,0)), // * std::min((Dxj(j+1),Cjr(j,1)) + (xj(j),Cjr(j,0)),
(xj(j),Cjr(j,1)) + (xj(j-1),Cjr(j,0)) ); //(xj(j),Cjr(j,1)) + (xj(j-1),Cjr(j,0)) );
}); });
double dt = std::numeric_limits<double>::max(); double dt = std::numeric_limits<double>::max();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment