43 Nom fichier_reprise_vitesse_;
44 int timestep_reprise_vitesse_ = 0;
45 Nom fichier_sortie_vitesse_;
46 Nom ijk_splitting_name;
47 Nom ijk_splitting_name_dest;
52 param.
ajouter(
"fichier_reprise_vitesse", &fichier_reprise_vitesse_);
53 param.
ajouter(
"timestep_reprise_vitesse", ×tep_reprise_vitesse_);
54 param.
ajouter(
"fichier_sortie_vitesse", &fichier_sortie_vitesse_);
59 IJK_Field_vector3_double velocity_;
60 IJK_Field_vector3_double velocity_dest_;
61 IJK_Field_double rho, dest_rho;
65 allocate_velocity(velocity_, splitting_, 1);
66 Cerr <<
"lecture de la vitesse" << finl;
67 lire_dans_lata(fichier_reprise_vitesse_, timestep_reprise_vitesse_,
"DOM",
"VELOCITY",
68 velocity_[0], velocity_[1], velocity_[2]);
69 Cerr <<
"swap jk" << finl;
72 allocate_velocity(velocity_dest_, splitting_dest_, 1);
74 for (
int direction = 0; direction < 3; direction++)
91 const IJK_Field_double& src = velocity_[direction];
92 IJK_Field_double& dest = velocity_dest_[direction2];
93 const int ni = src.
ni();
94 const int nj = src.
nj();
95 const int nk = src.
nk();
96 for (
int k = 0; k < nk; k++)
97 for (
int j = 0; j < nj; j++)
98 for (
int i = 0; i < ni; i++)
99 dest(i,k,j) = src(i,j,k);
101 Cerr <<
"Write " << fichier_sortie_vitesse_ << finl;
102 Nom lata_name(fichier_sortie_vitesse_);
103 dumplata_header(lata_name, velocity_dest_[0] );
104 dumplata_newtime(lata_name,0. );
105 dumplata_vector(lata_name,
"VELOCITY", velocity_dest_[0], velocity_dest_[1], velocity_dest_[2], 0);
109 Cerr <<
"lecture de rho" << finl;
110 lire_dans_lata(fichier_reprise_vitesse_, timestep_reprise_vitesse_,
"DOM",
"RHO",
112 Cerr <<
"swap jk" << finl;
115 const IJK_Field_double& src = rho;
116 IJK_Field_double& dest = dest_rho;
117 const int ni = src.
ni();
118 const int nj = src.
nj();
119 const int nk = src.
nk();
120 for (
int k = 0; k < nk; k++)
121 for (
int j = 0; j < nj; j++)
122 for (
int i = 0; i < ni; i++)
123 dest(i,k,j) = src(i,j,k);
125 Cerr <<
"Write rho " << fichier_sortie_vitesse_ << finl;
126 dumplata_scalar(lata_name,
"RHO", dest_rho, 0);
This class encapsulates all the information related to the eulerian mesh for TrioIJK.
void allocate(const Domaine_IJK &d, Domaine_IJK::Localisation l, int ghost_size, int additional_k_layers=0, int nb_compo=1, const Nom &name=Nom(), bool external_storage=false, int monofluide=0, double rov=0., double rol=0., int use_inv_rho_in_pressure_solver=0)