OpenPFC  0.1.4
Phase Field Crystal simulation framework
Loading...
Searching...
No Matches
results_writer.hpp File Reference

Base interface for simulation output and I/O operations. More...

#include "types.hpp"
#include "utils.hpp"
#include <array>
#include <iostream>
#include <mpi.h>
#include <vector>
Include dependency graph for results_writer.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  pfc::ResultsWriter
 
class  pfc::BinaryWriter
 

Detailed Description

Base interface for simulation output and I/O operations.

This file defines the ResultsWriter abstract base class, which provides a unified interface for writing simulation results to various output formats. OpenPFC currently supports:

  • Binary format (BinaryWriter) for checkpointing and restart
  • Future: VTK format for visualization

The ResultsWriter interface supports:

  • Parallel I/O via MPI (distributed data from decomposed domains)
  • Writing real and complex fields
  • Timestep-indexed output (increment parameter)
  • Domain configuration (global/local sizes, offsets)

Typical usage:

// Create writer
auto writer = std::make_unique<pfc::BinaryWriter>("output.bin");
// Configure domain (once)
writer->set_domain(global_size, local_size, local_offset);
// Write data at each save step
for (int step = 0; step < num_steps; ++step) {
writer->write(step, field_data);
}

This file is part of the I/O module, providing output capabilities for simulation results and checkpointing.

See also
simulator.hpp for I/O orchestration
types.hpp for RealField and ComplexField definitions
binary_reader.hpp for input counterpart
Author
OpenPFC Contributors
Date
2025