1#ifndef RP_TRAJECTORY_WRITER_TPP
2#define RP_TRAJECTORY_WRITER_TPP
11#include "TrajectoryWriter.h"
12#include <util/misc/FileMaster.h>
13#include <util/misc/ioUtil.h>
23 template <
int D,
class T>
25 typename T::System& system)
26 : AnalyzerT(simulator, system),
34 template <
int D,
class T>
37 AnalyzerT::readParameters(in);
38 isInitialized_ =
true;
44 template <
int D,
class T>
48 std::string filename = AnalyzerT::outputFileName();
49 system().fileMaster().openOutputFile(filename, outputFile_);
56 template <
int D,
class T>
59 if (AnalyzerT::isAtInterval(iStep)) {
68 template <
int D,
class T>
70 { outputFile_.close(); }
75 template <
int D,
class T>
78 int nMonomer = system().mixture().nMonomer();
79 bool isSymmetric =
false;
80 typename T::Domain
const & domain = system().domain();
81 typename T::FieldIo
const & fieldIo = domain.fieldIo();
82 fieldIo.writeFieldHeader(out, nMonomer, domain.unitCell(),
90 template <
int D,
class T>
93 out <<
"i = " << iStep <<
"\n";
95 bool isSymmetric =
false;
96 typename T::Domain
const & domain = system().domain();
97 typename T::FieldIo
const & fieldIo = domain.fieldIo();
98 fieldIo.writeFieldsRGrid(out, system().w().rgrid(),
void setup() override
Setup before main simulation loop.
void output() override
Close trajectory file after run.
void writeFrame(std::ofstream &out, long iStep)
Write data that should appear in every frame.
void readParameters(std::istream &in) override
Read interval and output file name.
void sample(long iStep) override
Write a frame/snapshot to the trajectory file.
void writeHeader(std::ofstream &out)
TrajectoryWriter(typename T::Simulator &simulator, typename T::System &system)
Constructor.
void setClassName(const char *className)
Set class name string.
Class templates for real-valued periodic fields.
PSCF package top-level namespace.