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

Base class for initial conditions and boundary conditions. More...

#include "constants.hpp"
#include "model.hpp"
Include dependency graph for field_modifier.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  pfc::FieldModifier
 

Detailed Description

Base class for initial conditions and boundary conditions.

This file defines the FieldModifier abstract base class, which provides a unified interface for modifying field values in simulations. FieldModifiers are used for:

  • Initial conditions (applied once before time integration)
  • Boundary conditions (applied every time step or at intervals)
  • Field perturbations and custom modifications

Concrete implementations include:

  • Initial conditions: Constant, Seed, SeedGrid, RandomSeeds, FileReader
  • Boundary conditions: FixedBC, MovingBC

Typical usage:

// Define initial condition
class MyInitialCondition : public pfc::FieldModifier {
public:
void apply(pfc::Model& model, double time) override {
auto& field = model.get_real_field(get_field_name());
// Modify field values
}
};
// Use in simulator
simulator.add_initial_condition(std::make_unique<MyInitialCondition>());
Definition field_modifier.hpp:240
virtual void apply(Model &model, double time)=0
Apply the field modification to the model (pure virtual)
The Model class represents the physics model for simulations in OpenPFC.
Definition model.hpp:95

This file is part of the Field Operations module, providing mechanisms for setting initial states and enforcing boundary constraints.

See also
model.hpp for field access methods
simulator.hpp for modifier application orchestration
initial_conditions/ for IC implementations
boundary_conditions/ for BC implementations