PSCF v1.4.0
fts/analyzer/ConcentrationWriter.h
1#ifndef RP_CONCENTRATION_WRITER_H
2#define RP_CONCENTRATION_WRITER_H
3
4/*
5* PSCF - Polymer Self-Consistent Field
6*
7* Copyright 2015 - 2025, The Regents of the University of Minnesota
8* Distributed under the terms of the GNU General Public License.
9*/
10
11#include <iostream>
12#include <fstream>
13
14namespace Pscf {
15namespace Rp {
16
33 template <int D, class T>
34 class ConcentrationWriter : public T::Analyzer
35 {
36
37 public:
38
45 ConcentrationWriter(typename T::Simulator& simulator,
46 typename T::System& system);
47
53 void readParameters(std::istream& in) override;
54
58 void setup() override;
59
65 void sample(long iStep) override;
66
70 void output() override;
71
72 using AnalyzerT = typename T::Analyzer;
73 using AnalyzerT::simulator;
74 using AnalyzerT::system;
75
76 private:
77
78 // Output file stream
79 std::ofstream outputFile_;
80
82 long nSample_;
83
85 long isInitialized_;
86
92 void writeHeader(std::ofstream& out);
93
100 void writeFrame(std::ofstream& out, long iStep);
101
102 };
103
104}
105}
106#endif
void readParameters(std::istream &in) override
Read interval and output file name.
ConcentrationWriter(typename T::Simulator &simulator, typename T::System &system)
Constructor.
void output() override
Close trajectory file after run.
void sample(long iStep) override
Write a frame/snapshot to trajectory file.
void setup() override
Initialize before main simulation loop.
Class templates for real-valued periodic fields.
PSCF package top-level namespace.