#include <algorithm>
#include <cmath>
#include <utility>
#include "../grid.h"
#include "../object_wrapper.h"
#include "vec.h"
#include "cpu_1d_plm.hpp"
#include "cpu_1d_ppm.hpp"
#include "cpu_1d_ppm_nonuniform.hpp"
#include "cpu_1d_pqm.hpp"
#include "cpu_trans_map.hpp"
#include "cpu_trans_pencils.hpp"
Go to the source code of this file.
|
| CellID | get_spatial_neighbor (const dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const CellID &cellID, const bool include_first_boundary_layer, const int spatial_di, const int spatial_dj, const int spatial_dk) |
| SpatialCell * | get_spatial_neighbor_pointer (const dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const CellID &cellID, const bool include_first_boundary_layer, const int spatial_di, const int spatial_dj, const int spatial_dk) |
| void | compute_spatial_source_neighbors (const dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const CellID &cellID, const uint dimension, SpatialCell **neighbors) |
| void | compute_spatial_target_neighbors (const dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const CellID &cellID, const uint dimension, SpatialCell **neighbors) |
| void | copy_trans_block_data (const SpatialCell *const *source_neighbors, const vmesh::GlobalID blockGID, Vec *values, const unsigned char *const cellid_transpose, const uint popID) |
| bool | trans_map_1d (const dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const vector< CellID > &localPropagatedCells, const vector< CellID > &remoteTargetCells, const uint dimension, const Realv dt, const uint popID) |
| void | update_remote_mapping_contribution (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const uint dimension, int direction, const uint popID) |
◆ i_trans_ps_blockv
| #define i_trans_ps_blockv |
( |
| planeVectorIndex, |
|
|
| planeIndex, |
|
|
| blockIndex ) |
Value:( (blockIndex) + VLASOV_STENCIL_WIDTH + ( (planeVectorIndex) + (planeIndex) * VEC_PER_PLANE ) * ( 1 + 2 * VLASOV_STENCIL_WIDTH) )
Definition at line 50 of file cpu_trans_map.cpp.
◆ i_trans_pt_blockv
| #define i_trans_pt_blockv |
( |
| planeVectorIndex, |
|
|
| planeIndex, |
|
|
| blockIndex ) |
Value:( planeVectorIndex + planeIndex * VEC_PER_PLANE + (blockIndex + 1) * VEC_PER_BLOCK)
Definition at line 57 of file cpu_trans_map.cpp.
◆ compute_spatial_source_neighbors()
| void compute_spatial_source_neighbors |
( |
const dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > & | mpiGrid, |
|
|
const CellID & | cellID, |
|
|
const uint | dimension, |
|
|
SpatialCell ** | neighbors ) |
◆ compute_spatial_target_neighbors()
| void compute_spatial_target_neighbors |
( |
const dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > & | mpiGrid, |
|
|
const CellID & | cellID, |
|
|
const uint | dimension, |
|
|
SpatialCell ** | neighbors ) |
◆ copy_trans_block_data()
| void copy_trans_block_data |
( |
const SpatialCell *const * | source_neighbors, |
|
|
const vmesh::GlobalID | blockGID, |
|
|
Vec * | values, |
|
|
const unsigned char *const | cellid_transpose, |
|
|
const uint | popID ) |
◆ get_spatial_neighbor()
| CellID get_spatial_neighbor |
( |
const dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > & | mpiGrid, |
|
|
const CellID & | cellID, |
|
|
const bool | include_first_boundary_layer, |
|
|
const int | spatial_di, |
|
|
const int | spatial_dj, |
|
|
const int | spatial_dk ) |
◆ get_spatial_neighbor_pointer()
| SpatialCell * get_spatial_neighbor_pointer |
( |
const dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > & | mpiGrid, |
|
|
const CellID & | cellID, |
|
|
const bool | include_first_boundary_layer, |
|
|
const int | spatial_di, |
|
|
const int | spatial_dj, |
|
|
const int | spatial_dk ) |
◆ trans_map_1d()
| bool trans_map_1d |
( |
const dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > & | mpiGrid, |
|
|
const vector< CellID > & | localPropagatedCells, |
|
|
const vector< CellID > & | remoteTargetCells, |
|
|
const uint | dimension, |
|
|
const Realv | dt, |
|
|
const uint | popID ) |
◆ update_remote_mapping_contribution()
| void update_remote_mapping_contribution |
( |
dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > & | mpiGrid, |
|
|
const uint | dimension, |
|
|
int | direction, |
|
|
const uint | popID ) |
This function communicates the mapping on process boundaries, and then updates the data to their correct values. TODO, this could be inside an openmp region, in which case some more barriers and masters should be added
- dimension: 0,1,2 for x,y,z
- direction: 1 for + dir, -1 for - dir
Definition at line 609 of file cpu_trans_map.cpp.