@@ -63,11 +63,12 @@ void ProblemGenerator(Mesh *pmesh, ParameterInput *pin, MeshData<Real> *md) {
6363 adios2::ADIOS adios (MPI_COMM_WORLD);
6464
6565 adios2::IO get_var = adios.DeclareIO (" GetVar" );
66- adios2::Engine bpReader = get_var.Open (" test3d.bp" , adios2::Mode::Read);
66+ adios2::Engine bpReader = get_var.Open (" ICs.bp" , adios2::Mode::Read);
67+ // adios2::Engine bpReader = get_var.Open("test3d.bp", adios2::Mode::Read);
6768
6869 bpReader.BeginStep ();
6970 // this just discovers in the metadata file that the variable exists
70- adios2::Variable<double > myvar_in = get_var.InquireVariable <double >(" myvarname " );
71+ adios2::Variable<double > myvar_in = get_var.InquireVariable <double >(" ICs " );
7172
7273 PARTHENON_REQUIRE_THROWS (myvar_in, " Could not find variable name in file." );
7374
@@ -76,24 +77,30 @@ void ProblemGenerator(Mesh *pmesh, ParameterInput *pin, MeshData<Real> *md) {
7677 for (int b = 0 ; b < num_blocks; b++) {
7778 auto pmb = md->GetBlockData (b)->GetBlockPointer ();
7879 const auto loc = pmb->pmy_mesh ->Forest ().GetLegacyTreeLocation (pmb->loc );
79- const auto gis = loc.lx1 () * mb1;
80- const auto gjs = loc.lx2 () * mb2;
81- const auto gks = loc.lx3 () * mb3;
8280 // only read row of current rank
83- const adios2::Dims start{0 , static_cast <unsigned long >(gks),
84- static_cast <unsigned long >(gjs),
85- static_cast <unsigned long >(gis)};
86- const adios2::Dims count{4 , static_cast <unsigned long >(mb3),
81+ const adios2::Dims start{static_cast <unsigned long >(loc.lx1 ()),
82+ static_cast <unsigned long >(loc.lx2 ()),
83+ static_cast <unsigned long >(loc.lx3 ()),
84+ 0 ,
85+ 0 ,
86+ 0 ,
87+ 0 };
88+ const adios2::Dims count{1 ,
89+ 1 ,
90+ 1 ,
91+ 4 ,
92+ static_cast <unsigned long >(mb3),
8793 static_cast <unsigned long >(mb2),
8894 static_cast <unsigned long >(mb1)};
8995 myvar_in.SetSelection ({start, count});
96+ auto bla = &tmp[50 ];
97+
9098 bpReader.Get (myvar_in, tmp.data (), adios2::Mode::Sync);
9199 std::cerr << " [" << parthenon::Globals::my_rank << " :" << b << " ]" ;
92100 for (int i = 0 ; i < 10 ; i++) {
93101 std::cerr << tmp[i] << " " ;
94102 }
95103 std::cerr << " \n " ;
96-
97104 auto ib = pmb->cellbounds .GetBoundsI (IndexDomain::interior);
98105 auto jb = pmb->cellbounds .GetBoundsJ (IndexDomain::interior);
99106 auto kb = pmb->cellbounds .GetBoundsK (IndexDomain::interior);
@@ -113,7 +120,7 @@ void ProblemGenerator(Mesh *pmesh, ParameterInput *pin, MeshData<Real> *md) {
113120 const auto ii = i - ib.s ;
114121 u (IDN, k, j, i) = tmp[((0 * mb3 + kk) * mb2 + jj) * mb1 + ii];
115122 u (IM2, k, j, i) = tmp[((1 * mb3 + kk) * mb2 + jj) * mb1 + ii];
116- u (IEN, k, j, i) = tmp[((2 * mb3 + kk) * mb2 + jj) * mb1 + ii];
123+ u (IEN, k, j, i) = 1.0 ; // tmp[((2 * mb3 + kk) * mb2 + jj) * mb1 + ii];
117124 }
118125 }
119126 }
@@ -122,6 +129,7 @@ void ProblemGenerator(Mesh *pmesh, ParameterInput *pin, MeshData<Real> *md) {
122129 }
123130 bpReader.EndStep ();
124131 bpReader.Close ();
132+ return ;
125133
126134 // Get pointer to first block (always exists) for common data like loop bounds
127135 auto pmb = md->GetBlockData (0 )->GetBlockPointer ();
0 commit comments