|
Vlasiator ebf0dd394 on dev (v5.4.0 + 1054 commits)
|
#include <projectTriAxisSearch.h>


Protected Member Functions | |
| virtual uint | findBlocksToInitialize (spatial_cell::SpatialCell *cell, const uint popID) const |
| Find blocks above the threshold centred isotropically around a bulk velocity. | |
| virtual Realf | probePhaseSpace (spatial_cell::SpatialCell *cell, const uint popID, Real vx_in, Real vy_in, Real vz_in) const =0 |
| virtual std::vector< std::array< Real, 3 > > | getV0 (creal x, creal y, creal z, const uint popID) const =0 |
| Return a vector containing the velocity coordinate of the centre of each ion population in the distribution. | |
| Protected Member Functions inherited from projects::Project | |
| void | setVelocitySpace (const uint popID, spatial_cell::SpatialCell *cell) const |
| Sets the distribution function in a cell. | |
| virtual void | calcCellParameters (spatial_cell::SpatialCell *cell, creal &t) |
| virtual Realf | fillPhaseSpace (spatial_cell::SpatialCell *cell, const uint popID, const uint nRequested) const =0 |
| void | printPopulations () |
| virtual bool | rescalesDensity (const uint popID) const |
| void | rescaleDensity (spatial_cell::SpatialCell *cell, const uint popID) const |
| Real | getRandomNumber (std::default_random_engine &randGen) const |
| void | setRandomSeed (uint64_t seedModifier, std::default_random_engine &randGen) const |
| void | setRandomCellSeed (spatial_cell::SpatialCell *cell, std::default_random_engine &randGen) const |
Additional Inherited Members | |
| Public Member Functions inherited from projects::Project | |
| Project () | |
| virtual | ~Project () |
| virtual Real | getCorrectNumberDensity (spatial_cell::SpatialCell *cell, const uint popID) const |
| virtual void | getParameters () |
| virtual bool | initialize () |
| virtual void | hook (cuint &stage, const dccrg::Dccrg< spatial_cell::SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, fsgrids::perbspan perb, fsgrids::technicalspan technical, FieldSolverGrid &fsgrid) const |
| bool | initialized () |
| virtual void | setProjectBField (fsgrids::perbspan perb, fsgrids::bgbspan bgb, fsgrids::technicalspan technical, FieldSolverGrid &fsgrid) |
| virtual void | setupBeforeSetCell (const std::vector< CellID > &cells) |
| void | setCell (spatial_cell::SpatialCell *cell) |
| Set the perturbed fields and distribution of a cell according to the default simulation settings. This is used for the NOT_SYSBOUNDARY cells and some other system boundary conditions (e.g. Outflow). | |
| virtual bool | canRefine (spatial_cell::SpatialCell *cell) const |
| virtual bool | shouldRefineCell (dccrg::Dccrg< spatial_cell::SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, CellID id, Real r_max2) const |
| virtual bool | shouldUnrefineCell (dccrg::Dccrg< spatial_cell::SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, CellID id, Real r_max2) const |
| virtual bool | refineSpatialCells (dccrg::Dccrg< spatial_cell::SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid) const |
| virtual uint64_t | adaptRefinement (dccrg::Dccrg< spatial_cell::SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid) const |
| Adapts refinement by one level according to the project. Returns true if any cells were refined, false if not. | |
| virtual bool | forceRefinement (dccrg::Dccrg< spatial_cell::SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, int n) const |
| Refine/unrefine spatial cells one level to the static criteria in the config. | |
| virtual bool | filterRefined (dccrg::Dccrg< spatial_cell::SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid) const |
| Boxcar filters spatial cells that were recently refined. | |
| Static Public Member Functions inherited from projects::Project | |
| static void | addParameters () |
Definition at line 28 of file projectTriAxisSearch.h.
|
protectedvirtual |
Find blocks above the threshold centred isotropically around a bulk velocity.
Instead of looping through the whole velocity space this function starts from the project's bulk velocity V0[3]. It then proceeds along V[XYZ] successively to determine at what maximum radius a block falls below (0.1 times) the threshold.
This radius is used to determine all blocks within that radius of V0 for creating V-spaces. The function stores the prepared blocks into cell->velocity_block_with_content_list and returns the count.
This assumes that the velocity space is isotropic (same resolution in vx, vy, vz).
Reimplemented from projects::Project.
Definition at line 34 of file projectTriAxisSearch.cpp.

|
protectedpure virtual |
Return a vector containing the velocity coordinate of the centre of each ion population in the distribution.
This function is used by findBlocksToInitialize() to start the search of the extent of the distribution along each axis. The extension to a vector allows to have more than one population in each spatial cell.
Implemented in projects::Distributions, projects::Flowthrough, projects::Fluctuations, projects::Harris, projects::IPShock, projects::KHB, projects::LossCone, projects::Magnetosphere, projects::MultiPeak, projects::Shocktest, projects::Template, and projects::test_fp.

|
protectedpure virtual |
Implemented in projects::Distributions, projects::Flowthrough, projects::Fluctuations, projects::Harris, projects::IPShock, projects::KHB, projects::LossCone, projects::Magnetosphere, projects::MultiPeak, projects::Shocktest, projects::Template, and projects::test_fp.
