|
YASK
Yet Another Stencil Kit: a software framework for creating HPC stencil code. Copyright 2014-2023 Intel Corporation.
|
Bootstrap factory to create a stencil solution. More...
#include <yask_kernel_api.hpp>
Public Member Functions | |
| virtual std::string | get_version_string () |
| Version information. | |
| virtual yk_env_ptr | new_env () const |
| Create an object to hold environment information. | |
| virtual yk_env_ptr | new_env (MPI_Comm comm) const |
| Create a yk_env object using the provided MPI communicator. | |
| virtual yk_solution_ptr | new_solution (yk_env_ptr env) const |
| Create a stencil solution. | |
| virtual yk_solution_ptr | new_solution (yk_env_ptr env, const yk_solution_ptr source) const |
| [Advanced] Create a stencil solution by copying the settings from another. | |
Bootstrap factory to create a stencil solution.
|
virtual |
Version information.
|
virtual |
Create an object to hold environment information.
Performs the following initialization steps:
MPI_COMM_WORLD as the communicator.MPI_Init_thread(..., MPI_THREAD_SERIALIZED, ...) or MPI_Init_thread(..., MPI_THREAD_MULTIPLE, ...).KMP_HOT_TEAMS_MODE= and KMP_HOT_TEAMS_MAX_LEVEL=2.Environment info is kept in a separate object to factilitate initializing the environment before creating a solution and sharing an environment among multiple solutions.
|
virtual |
Create a yk_env object using the provided MPI communicator.
Behaves like new_env(), but uses the provided MPI communicator instead of using MPI_COMM_WORLD. MPI must be enabled and initialized before calling this function following the usage notes for new_env().
include "mpi.h" should precede #include "yask_kernel_api.hpp" to ensure proper MPI type definitions.
|
virtual |
Create a stencil solution.
A stencil solution contains all the vars and equations that were created during stencil compilation.
| [in] | env | Pointer to env info. |
|
virtual |
[Advanced] Create a stencil solution by copying the settings from another.
All the settings that were specified via the yk_solution::set_*() functions in the source solution will be copied to the new solution. This does not copy any vars, var settings, or var data; see yk_solution::fuse_vars().
| [in] | env | Pointer to env info. |
| [in] | source | Pointer to existing yk_solution from which the settings will be copied. |