diff --git a/examples/heatTransfer/IO_adios2.cpp b/examples/heatTransfer/IO_adios2.cpp deleted file mode 100644 index aea0493ca7dfbbea62f9568f63c4a289bbaa1bba..0000000000000000000000000000000000000000 --- a/examples/heatTransfer/IO_adios2.cpp +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Distributed under the OSI-approved Apache License, Version 2.0. See - * accompanying file Copyright.txt for details. - * - * IO_ADIOS2.cpp - * - * Created on: Feb 2017 - * Author: Norbert Podhorszki - */ - -#include "IO.h" -#include "ADIOS_CPP.h" - -#include <string> - -static int rank_saved; -adios::ADIOS *ad = nullptr; -std::shared_ptr<adios::Engine> bpWriter; -adios::Variable<double> *varT = nullptr; - -IO::IO(const Settings &s, MPI_Comm comm) -{ - rank_saved = s.rank; - m_outputfilename = s.outputfile + ".bp"; - ad = new adios::ADIOS("adios2.xml", comm, adios::Verbose::INFO); - - // Define method for engine creation - // 1. Get method def from config file or define new one - - adios::Method &bpWriterSettings = ad->DeclareMethod("output"); - if (!bpWriterSettings.IsUserDefined()) - { - // if not defined by user, we can change the default settings - bpWriterSettings.SetEngine("BP"); // BP is the default engine - bpWriterSettings.AllowThreads( - 1); // allow 1 extra thread for data processing - bpWriterSettings.AddTransport( - "File", "lucky=yes"); // ISO-POSIX file is the default transport - // Passing parameters to the transport - bpWriterSettings.SetParameters( - "have_metadata_file", - "yes"); // Passing parameters to the engine - bpWriterSettings.SetParameters( - "Aggregation", - std::to_string((s.nproc + 1) / 2)); // number of aggregators - } - - // define T as 2D global array - varT = &ad->DefineVariable<double>( - "T", {s.gndx, s.gndy}, // Global dimensions - {s.ndx, - s.ndy}, // local size, could be defined later using SetSelection() - {s.offsx, s.offsy} // offset of the local array in the global space - ); - - // add transform to variable - // adios::Transform tr = adios::transform::BZIP2( ); - // varT.AddTransform( tr, "" ); - // varT.AddTransform( tr,"accuracy=0.001" ); // for ZFP - - bpWriter = ad->Open(m_outputfilename, "w", comm, bpWriterSettings); - - // ad->Open(m_outputfilename, "w", comm, bpWriterSettings); - - if (bpWriter == nullptr) - throw std::ios_base::failure("ERROR: failed to open ADIOS bpWriter\n"); -} - -IO::~IO() -{ - bpWriter->Close(); - delete ad; -} - -void /*IO::*/ old_style_write(int step, const HeatTransfer &ht, - const Settings &s, MPI_Comm comm) -{ - bpWriter->Write<double>(*varT, ht.data_noghost().data()); - bpWriter->Advance(); -} - -void IO::write(int step, const HeatTransfer &ht, const Settings &s, - MPI_Comm comm) -{ - /* This selection is redundant and not required, since we defined - * the selection already in DefineVariable(). It is here just as an example. - */ - // Make a selection to describe the local dimensions of the variable we - // write - // and - // its offsets in the global spaces. This could have been done in - // adios.DefineVariable() - adios::Selection sel = adios.SelectionBoundingBox( - {s.ndx, s.ndy}, - {s.offsx, s.offsy}); // local dims and offsets; both as list - var2D.SetSelection(sel); - - /* Select the area that we want to write from the data pointer we pass to - the - writer. - Think HDF5 memspace, just not hyperslabs, only a bounding box selection. - Engine will copy this bounding box from the data pointer into the output - buffer. - Size of the bounding box should match the "space" selection which was - given - above. - Default memspace is always the full selection. - */ - adios::Selection memspace = - adios.SelectionBoundingBox({s.ndx, s.ndy}, {1, 1}); - var2D.SetMemorySelection(memspace); - - bpWriter->Write<double>(*varT, ht.data()); - bpWriter->Advance(); -} diff --git a/examples/heatTransfer/write/IO_adios2.cpp b/examples/heatTransfer/write/IO_adios2.cpp index 72d118ea15748e2d9852879ccc7f519f184ba72f..0f0c06bb795e0972564d8f5884b52955a08207c9 100644 --- a/examples/heatTransfer/write/IO_adios2.cpp +++ b/examples/heatTransfer/write/IO_adios2.cpp @@ -31,12 +31,13 @@ IO::IO(const Settings &s, MPI_Comm comm) if (!bpWriterSettings.IsUserDefined()) { // if not defined by user, we can change the default settings - bpWriterSettings.SetEngine("BPFileWriter"); // BP is the default engine - bpWriterSettings.AllowThreads(1); // for data processing - - bpWriterSettings.AddTransport( - "File", "lucky=yes"); // ISO-POSIX file is the default transport - // Passing parameters to the transport + // BPFileWriter is the default engine + bpWriterSettings.SetEngine("BPFileWriter"); + // Allow an extra thread for data processing + bpWriterSettings.AllowThreads(1); + // ISO-POSIX file is the default transport + // Passing parameters to the transport + bpWriterSettings.AddTransport("File", "lucky=yes"); const std::string aggregatorsParam("Aggregators=" + std::to_string((s.nproc + 1) / 2));