34 renum_.resize(nk+2, nj+2, ni+2, RESIZE_OPTIONS::NOCOPY_NOINIT);
44 for (
int k = 0; k < nk; k++)
45 for (
int j = 0; j < nj; j++)
46 for (
int i = 0; i < ni; i++)
55 ArrOfInt pe_voisins(6);
57 VECT(ArrOfInt) items_to_send(6);
58 VECT(ArrOfInt) items_to_recv(6);
59 VECT(ArrOfInt) blocs_to_recv(6);
75 add_virt_bloc(pe, count, 0,0,-1, ni,nj,0, blocs_to_recv[npe]);
82 add_virt_bloc(pe, count, 0,0,-1, ni,nj,0, blocs_to_recv[npe]);
83 add_virt_bloc(pe, count, 0,0,nk, ni,nj,nk+1, blocs_to_recv[npe]);
96 add_virt_bloc(pe, count, 0,-1,0, ni,0,nk, blocs_to_recv[npe]);
103 add_virt_bloc(pe, count, 0,-1,0, ni,0,nk, blocs_to_recv[npe]);
104 add_virt_bloc(pe, count, 0,nj,0, ni,nj+1,nk, blocs_to_recv[npe]);
114 pe_voisins[npe] = pe;
117 add_virt_bloc(pe, count, -1,0,0, 0,nj,nk, blocs_to_recv[npe]);
124 add_virt_bloc(pe, count, -1,0,0, 0,nj,nk, blocs_to_recv[npe]);
125 add_virt_bloc(pe, count, ni,0,0, ni+1,nj,nk, blocs_to_recv[npe]);
133 if (pe >= 0 && pe != pe_imin)
135 pe_voisins[npe] = pe;
136 add_virt_bloc(pe, count, ni,0,0, ni+1,nj,nk, blocs_to_recv[npe]);
142 if (pe >= 0 && pe != pe_jmin)
144 pe_voisins[npe] = pe;
145 add_virt_bloc(pe, count, 0,nj,0, ni,nj+1,nk, blocs_to_recv[npe]);
151 if (pe >= 0 && pe != pe_kmin)
153 pe_voisins[npe] = pe;
154 add_virt_bloc(pe, count, 0,0,nk, ni,nj,nk+1, blocs_to_recv[npe]);
170 const int n_reels =
md_->get_nb_items_reels();
176 constexpr int z_index_min = 0;
180 for (
int i = 0; i < ni; i++)
186 const int offset_pos =
static_cast<int>(std::round(shear_per_DX));
189 const int offset_neg =
static_cast<int>(std::round(-shear_per_DX));
193 for (
int k = 0; k < nk; k++)
195 for (
int j = 0; j < nj; j++)
197 if (z_index==z_index_min &&
defilement_==1 && k==0)
199 ajoute_coeff(i,j,k,i,j,k-1,coeffs_face(i,j,k,2), 1.);
209 if (z_index==z_index_max &&
defilement_==1 && k==nk-1)
211 ajoute_coeff(i,j,k,i,j,k+1,coeffs_face(i,j,k+1,2), -1.);
221 for (
int i = 0; i < n_reels; i++)
227 for (
int i = 0; i < n_reels; i++)
230 for (
int i = 0; i < n_reels; i++)
236 mat_.dimensionner(1, 2);
237 mat_.get_bloc(0,0).typer(
"Matrice_Morse_Sym");
238 mat_.get_bloc(0,1).typer(
"Matrice_Morse");
242 carre.dimensionner(n_reels, nnz);
244 rect.
dimensionner(n_reels,
md_->get_nb_items_tot() - n_reels, nnz_virt);
270 renum_.resize(nk+2, nj+2, ni+2, RESIZE_OPTIONS::NOCOPY_NOINIT);
280 for (
int k = 0; k < nk; k++)
281 for (
int j = 0; j < nj; j++)
282 for (
int i = 0; i < ni; i++)
285 renum(i,j,k) = index;
291 ArrOfInt pe_voisins(6);
293 VECT(ArrOfInt) items_to_send(6);
294 VECT(ArrOfInt) items_to_recv(6);
295 VECT(ArrOfInt) blocs_to_recv(6);
308 pe_voisins[npe] = pe;
311 add_virt_bloc(pe, count, 0,0,-1, ni,nj,0, blocs_to_recv[npe]);
318 add_virt_bloc(pe, count, 0,0,-1, ni,nj,0, blocs_to_recv[npe]);
319 add_virt_bloc(pe, count, 0,0,nk, ni,nj,nk+1, blocs_to_recv[npe]);
329 pe_voisins[npe] = pe;
332 add_virt_bloc(pe, count, 0,-1,0, ni,0,nk, blocs_to_recv[npe]);
339 add_virt_bloc(pe, count, 0,-1,0, ni,0,nk, blocs_to_recv[npe]);
340 add_virt_bloc(pe, count, 0,nj,0, ni,nj+1,nk, blocs_to_recv[npe]);
350 pe_voisins[npe] = pe;
353 add_virt_bloc(pe, count, -1,0,0, 0,nj,nk, blocs_to_recv[npe]);
360 add_virt_bloc(pe, count, -1,0,0, 0,nj,nk, blocs_to_recv[npe]);
361 add_virt_bloc(pe, count, ni,0,0, ni+1,nj,nk, blocs_to_recv[npe]);
369 if (pe >= 0 && pe != pe_imin)
371 pe_voisins[npe] = pe;
372 add_virt_bloc(pe, count, ni,0,0, ni+1,nj,nk, blocs_to_recv[npe]);
378 if (pe >= 0 && pe != pe_jmin)
380 pe_voisins[npe] = pe;
381 add_virt_bloc(pe, count, 0,nj,0, ni,nj+1,nk, blocs_to_recv[npe]);
387 if (pe >= 0 && pe != pe_kmin)
389 pe_voisins[npe] = pe;
390 add_virt_bloc(pe, count, 0,0,nk, ni,nj,nk+1, blocs_to_recv[npe]);
406 const int n_reels =
md_.valeur().get_nb_items_reels();
416 for (
int i = 0; i < ni; i++)
422 const int offset_pos =
static_cast<int>(std::round(shear_per_DX));
425 const int offset_neg =
static_cast<int>(std::round(-shear_per_DX));
429 for (
int k = 0; k < nk; k++)
431 for (
int j = 0; j < nj; j++)
433 if (z_index==z_index_min &&
defilement_==1 && k==0)
435 ajoute_coeff2(i,j,k,i,j,k-1,coeffs_face(i,j,k,2), 1.);
445 if (z_index==z_index_max &&
defilement_==1 && k==nk-1)
447 ajoute_coeff2(i,j,k,i,j,k+1,coeffs_face(i,j,k+1,2), -1.);
457 for (
int i = 0; i < n_reels; i++)
463 for (
int i = 0; i < n_reels; i++)
466 for (
int i = 0; i < n_reels; i++)
472 mat_.dimensionner(1, 2);
473 mat_.get_bloc(0,0).typer(
"Matrice_Morse");
474 mat_.get_bloc(0,1).typer(
"Matrice_Morse");
478 carre.dimensionner(n_reels, nnz);
480 rect.
dimensionner(n_reels,
md_.valeur().get_nb_items_tot() - n_reels, nnz_virt);