Basic: class for performing non-uniform time stepping. In order to perform non uniform time stepping the octree to block decomposition needed to be completed. We assume that the blocks are setup in the mesh class.
More...
#include <nuts.h>
|
| NUTS (ot::Mesh *octMesh, unsigned int s, double tb, double te, Point ptMin, Point ptMax, double cfl=0.25) |
| : constructor More...
|
|
| ~NUTS () |
| : default destructor
|
|
template<typename T > |
void | zip_to_unzip (T **in, T **out, bool isGSync=false, unsigned int dof=1) |
| : converts an zip vector to unzip format. More...
|
|
template<typename T > |
void | unzip_to_zip (T **in, T **out, bool isGSync=false, unsigned int dof=1) |
| : converts the unzip vector to zip vector More...
|
|
template<typename T > |
void | unzip_sync (T **in, unsigned int blk, unsigned int dof=1) |
| : We need to perform block level sync operation More...
|
|
template<typename T > |
void | unzip_sync_all (T **in, unsigned int dof=1) |
| : Sync operation accross all the blocks. More...
|
|
void | sync_ts () |
| : sync to the next coarsest time step
|
|
template<typename T > |
void | timestep (const T **in, T **out, std::function< void(T, T **, T **)>f_rhs, const double *a, const double *b, const double *c, unsigned int dof=1) |
| : perform single time step More...
|
|
Basic: class for performing non-uniform time stepping. In order to perform non uniform time stepping the octree to block decomposition needed to be completed. We assume that the blocks are setup in the mesh class.
◆ NUTS()
ts::NUTS::NUTS |
( |
ot::Mesh * |
octMesh, |
|
|
unsigned int |
s, |
|
|
double |
tb, |
|
|
double |
te, |
|
|
Point |
ptMin, |
|
|
Point |
ptMax, |
|
|
double |
cfl = 0.25 |
|
) |
| |
: constructor
- Parameters
-
[in] | octMesh | octree mesh |
[in] | s | number of rk stages. |
[in] | tb | time begin |
[in] | te | time end |
[in] | cfl | cfl factor |
◆ timestep()
template<typename T >
void ts::NUTS::timestep |
( |
const T ** |
in, |
|
|
T ** |
out, |
|
|
std::function< void(T, T **, T **)> |
f_rhs, |
|
|
const double * |
a, |
|
|
const double * |
b, |
|
|
const double * |
c, |
|
|
unsigned int |
dof = 1 |
|
) |
| |
: perform single time step
- Parameters
-
[in] | in | : input vector (previous time step) |
[out] | out | output vector (next timestep) |
[in] | f_rhs | functional to compute the right hand side of the PDE(s) |
[in] | a | time integrator coefficient matrix |
[in] | b | different stage combination coefficients |
[in] | c | different time stage coefficients |
[in] | dof | number of degrees of freedoms |
◆ unzip_sync()
template<typename T >
void ts::NUTS::unzip_sync |
( |
T ** |
in, |
|
|
unsigned int |
blk, |
|
|
unsigned int |
dof = 1 |
|
) |
| |
: We need to perform block level sync operation
- Parameters
-
[in] | in | input vector of multiple vars (unzip version). |
[in] | blk | block ID, (should be sync on local blocks only. ) |
[in] | dof | number of variables |
◆ unzip_sync_all()
template<typename T >
void ts::NUTS::unzip_sync_all |
( |
T ** |
in, |
|
|
unsigned int |
dof = 1 |
|
) |
| |
: Sync operation accross all the blocks.
- Parameters
-
[in] | in | input vector |
[in] | dof | number of vars |
◆ unzip_to_zip()
template<typename T >
void ts::NUTS::unzip_to_zip |
( |
T ** |
in, |
|
|
T ** |
out, |
|
|
bool |
isGSync = false , |
|
|
unsigned int |
dof = 1 |
|
) |
| |
: converts the unzip vector to zip vector
- Parameters
-
[in] | in | input unzip vector |
[out] | out | output zip vector |
[in] | isGsync | : perform ghost sync after zip operation |
[in] | dof | number of degrees of freedoms |
◆ zip_to_unzip()
template<typename T >
void ts::NUTS::zip_to_unzip |
( |
T ** |
in, |
|
|
T ** |
out, |
|
|
bool |
isGSync = false , |
|
|
unsigned int |
dof = 1 |
|
) |
| |
: converts an zip vector to unzip format.
- Parameters
-
[in] | in | input zip vector |
[out] | out | : output unzip vector |
[in] | isGSync | true if the ghost sync is performed |
[in] | dof | number of degrees of freedoms. |
The documentation for this class was generated from the following files: