OpenPFC  0.1.4
Phase Field Crystal simulation framework
Loading...
Searching...
No Matches
07_field_modifiers.cpp File Reference

Comprehensive examples of the FieldModifier API. More...

#include <cmath>
#include <iostream>
#include <memory>
#include <mpi.h>
#include <openpfc/openpfc.hpp>
Include dependency graph for 07_field_modifiers.cpp:

Classes

class  GaussianIC
 Custom field modifier: Gaussian initial condition. More...
 
class  DirichletBC
 Custom boundary condition: Fixed Dirichlet BC at right boundary. More...
 
class  OscillatingBC
 Space-time varying BC: Oscillating left boundary. More...
 

Functions

void print_section (const std::string &title)
 
void demo_custom_initial_condition ()
 
void demo_boundary_condition ()
 
void demo_space_time_bc ()
 
void demo_composition ()
 Demonstrate composition of multiple field modifiers.
 
int main (int argc, char **argv)
 

Detailed Description

Comprehensive examples of the FieldModifier API.

This example demonstrates:

  1. Creating custom initial conditions
  2. Creating custom boundary conditions
  3. Space-time varying boundary conditions
  4. Composing multiple modifiers

Compile and run: mpicxx -std=c++17 -I/path/to/openpfc/include 07_field_modifiers.cpp \ -L/path/to/openpfc/lib -lopenpfc -lheffte -o 07_field_modifiers mpirun -np 4 ./07_field_modifiers

Function Documentation

◆ demo_composition()

void demo_composition ( )

Demonstrate composition of multiple field modifiers.

This shows how to combine:

  • Constant background IC
  • Localized perturbation IC
  • Boundary conditions

Modifiers are applied in sequence, each building on the previous.

Here is the call graph for this function: