1 #ifndef ERF_READCUSTOMBINARYIC_H_
2 #define ERF_READCUSTOMBINARYIC_H_
13 amrex::Vector<amrex::Real>& xvec_h,
14 amrex::Vector<amrex::Real>& yvec_h,
15 amrex::Vector<amrex::Real>& zvec_h,
16 amrex::Vector<amrex::Real>& rho_h,
17 amrex::Vector<amrex::Real>& uvel_h,
18 amrex::Vector<amrex::Real>& vvel_h,
19 amrex::Vector<amrex::Real>& wvel_h,
20 amrex::Vector<amrex::Real>& theta_h,
21 amrex::Vector<amrex::Real>& qv_h,
22 amrex::Vector<amrex::Real>& qc_h,
23 amrex::Vector<amrex::Real>& qr_h)
25 int nx, ny, nz, ndata;
29 std::ifstream infile(filename, std::ios::binary);
31 std::cerr <<
"Error: Could not open file " << filename << std::endl;
35 infile.read(
reinterpret_cast<char*
>(&nx),
sizeof(
int));
36 infile.read(
reinterpret_cast<char*
>(&ny),
sizeof(
int));
37 infile.read(
reinterpret_cast<char*
>(&nz),
sizeof(
int));
38 infile.read(
reinterpret_cast<char*
>(&ndata),
sizeof(
int));
40 for(
int i=0; i<nx; i++) {
41 infile.read(
reinterpret_cast<char*
>(&value),
sizeof(
float));
42 xvec_h.emplace_back(value);
45 for(
int j=0; j<ny; j++) {
46 infile.read(
reinterpret_cast<char*
>(&value),
sizeof(
float));
47 yvec_h.emplace_back(value);
50 for(
int k=0; k<nz; k++) {
51 infile.read(
reinterpret_cast<char*
>(&value),
sizeof(
float));
52 zvec_h.emplace_back(value);
55 amrex::Vector<amrex::Real>* data_h =
nullptr;
58 for(
int idx=0; idx<ndata; idx++){
76 for(
int k=0; k<nz; k++) {
77 for(
int j=0; j<ny; j++) {
78 for(
int i=0; i<nx; i++) {
79 infile.read(
reinterpret_cast<char*
>(&value),
sizeof(
float));
80 data_h->emplace_back(value);
void ReadCustomBinaryIC(const std::string filename, amrex::Vector< amrex::Real > &xvec_h, amrex::Vector< amrex::Real > &yvec_h, amrex::Vector< amrex::Real > &zvec_h, amrex::Vector< amrex::Real > &rho_h, amrex::Vector< amrex::Real > &uvel_h, amrex::Vector< amrex::Real > &vvel_h, amrex::Vector< amrex::Real > &wvel_h, amrex::Vector< amrex::Real > &theta_h, amrex::Vector< amrex::Real > &qv_h, amrex::Vector< amrex::Real > &qc_h, amrex::Vector< amrex::Real > &qr_h)
Definition: ERF_ReadCustomBinaryIC.H:12