![]() |
OpenPFC
0.1.4
Phase Field Crystal simulation framework
|


Public Member Functions | |
| void | initialize (double dt) override |
| Initialize the diffusion model. | |
| void | step (double) override |
| The actual time stepping function. | |
| void | find_minmax () |
| A simple MPI communication example. | |
| double | get_psi_min () const |
| double | get_psi_max () const |
| void | allocate () |
| void | prepare_operators (double dt) |
| void | initialize (double dt) override |
| void | step (double) override |
| void | find_minmax () |
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. | |
| Model & | operator= (const Model &)=delete |
| Disable copy assignment operator. | |
| bool | is_rank0 () const noexcept |
| Check if current MPI rank is 0. | |
| const World & | get_world () const noexcept |
| Get the decomposition object associated with the model. | |
| FFT & | get_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. | |
Public Attributes | |
| double | psi_min = 0.0 |
| double | psi_max = 1.0 |
|
inline |
A simple MPI communication example.
We find minimum and maximum of psi locally, and then communicate them between different MPI ranks.

Initialize the diffusion model.
This function is called before the actual time stepping starts. This is the right place to allocate memory for simulation as well as pre-calculate operators and other things needed in order to start the simulation.
| dt | Time step interval |
Implements pfc::Model.

Implements pfc::Model.
The actual time stepping function.
In this particular case, with a simple linear model, is basically
u(t+Δt) = ifft(opL*fft(u(t)))
Implements pfc::Model.

Implements pfc::Model.