OpenPFC  0.1.4
Phase Field Crystal simulation framework
Loading...
Searching...
No Matches
DiffusionModel Class Reference

Simple diffusion model for demonstration. More...

Inheritance diagram for DiffusionModel:
Collaboration diagram for DiffusionModel:

Public Member Functions

 DiffusionModel (FFT &fft, const World &world)
 
void initialize (double dt) override
 
void step (double t) override
 
- Public Member Functions inherited from pfc::Model
 ~Model ()
 Destroy the Model object.
 
 Model (FFT &fft, const World &world)
 
 Model (const Model &)=delete
 Disable copy constructor.
 
Modeloperator= (const Model &)=delete
 Disable copy assignment operator.
 
bool is_rank0 () const noexcept
 Check if current MPI rank is 0.
 
const Worldget_world () const noexcept
 Get the decomposition object associated with the model.
 
FFTget_fft () noexcept
 
virtual size_t get_allocated_memory_bytes () const
 
bool has_real_field (std::string_view field_name) const noexcept
 Check if the model has a real-valued field with the given name.
 
void add_real_field (std::string_view name, RealField &field)
 
bool has_complex_field (std::string_view field_name) const noexcept
 
void add_complex_field (std::string_view name, ComplexField &field)
 
RealField & get_real_field (std::string_view name)
 
const RealField & get_real_field (std::string_view name) const
 Retrieve a registered real-valued field by name (const version)
 
ComplexField & get_complex_field (std::string_view name)
 
const ComplexField & get_complex_field (std::string_view name) const
 Retrieve a registered complex-valued field by name (const version)
 
void add_field (const std::string &name, RealField &field)
 Add a field to the model.
 
void add_field (const std::string &name, ComplexField &field)
 Add a field to the model.
 
bool has_field (std::string_view field_name) const noexcept
 
virtual Field & get_field ()
 Get a reference to the default primary unknown field.
 

Detailed Description

Simple diffusion model for demonstration.

Implements: ∂u/∂t = D∇²u Semi-implicit: u(t+dt) = u(t) / (1 - D*dt*k²)

Examples
03_simulator_workflow.cpp.

Member Function Documentation

◆ initialize()

void DiffusionModel::initialize ( double  dt)
inlineoverridevirtual

Implements pfc::Model.

◆ step()

void DiffusionModel::step ( double  t)
inlineoverridevirtual

Implements pfc::Model.


The documentation for this class was generated from the following file: