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


Public Member Functions | |
| Magnetosphere () | |
| virtual | ~Magnetosphere () |
| virtual bool | initialize (void) override |
| virtual void | getParameters (void) override |
| virtual void | setProjectBField (fsgrids::perbspan perb, fsgrids::bgbspan bgb, fsgrids::technicalspan technical, FieldSolverGrid &fsgrid) override |
| virtual Realf | fillPhaseSpace (spatial_cell::SpatialCell *cell, const uint popID, const uint nRequested) const override |
| virtual Realf | probePhaseSpace (spatial_cell::SpatialCell *cell, const uint popID, Real vx_in, Real vy_in, Real vz_in) const override |
| bool | refineSpatialCells (dccrg::Dccrg< spatial_cell::SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid) const override |
| bool | forceRefinement (dccrg::Dccrg< spatial_cell::SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, int n) const override |
| Real | geometryRadius (Real x, Real y, Real z) const |
| virtual void | calcCellParameters (spatial_cell::SpatialCell *cell, creal &t) override |
| virtual std::vector< std::array< Real, 3 > > | getV0 (creal x, creal y, creal z, const uint popID) const override |
| Return a vector containing the velocity coordinate of the centre of each ion population in the distribution. | |
| Public Member Functions inherited from projects::Project | |
| Project () | |
| virtual | ~Project () |
| virtual Real | getCorrectNumberDensity (spatial_cell::SpatialCell *cell, const uint popID) const |
| 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 | 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 | |
| static void | addParameters (void) |
| Static Public Member Functions inherited from projects::Project | |
| static void | addParameters () |
Additional Inherited Members | |
| Protected Member Functions inherited from projects::TriAxisSearch | |
| virtual uint | findBlocksToInitialize (spatial_cell::SpatialCell *cell, const uint popID) const |
| Find blocks above the threshold centred isotropically around a bulk velocity. | |
| Protected Member Functions inherited from projects::Project | |
| void | setVelocitySpace (const uint popID, spatial_cell::SpatialCell *cell) const |
| Sets the distribution function in a cell. | |
| 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 |
Definition at line 43 of file Magnetosphere.h.
| projects::Magnetosphere::Magnetosphere | ( | ) |
Definition at line 45 of file Magnetosphere.cpp.
|
virtual |
Definition at line 46 of file Magnetosphere.cpp.
|
static |
Definition at line 48 of file Magnetosphere.cpp.


|
overridevirtual |
Calculate potentially needed parameters for the given spatial cell at the given time.
Currently this function is only called during initialization.
The following array indices contain the coordinates of the "lower left corner" of the cell: CellParams::XCRD, CellParams::YCRD, and CellParams::ZCRD. The cell size is given in the following array indices: CellParams::DX, CellParams::DY, and CellParams::DZ.
| cell | Pointer to the spatial cell to be handled. |
| t | The current value of time. This is passed as a convenience. If you need more detailed information of the state of the simulation, you can read it from Parameters. |
Print a warning message to stderr and abort, one should not use the base class functions.
Reimplemented from projects::Project.
Definition at line 284 of file Magnetosphere.cpp.
|
overridevirtual |
Calculates the distribution function contents for the spatial cell and population in question NOTE: This function is called inside parallel region so it must be declared as const. This function will contain a loop over nRequested velocity blocks, with the block GlobalIDs provided in the GIDlist buffer, storing phase-space densities in the bufferData buffer.
| popID | Particle species ID. |
Implements projects::Project.
Definition at line 478 of file Magnetosphere.cpp.

|
override |
Definition at line 286 of file Magnetosphere.cpp.


|
overridevirtual |
Get the value that was read in.
Read inner boundary parameters from either ionospheric or copysphere sysboundary condition
Read inner boundary parameters from either ionospheric or copysphere sysboundary condition
Reimplemented from projects::Project.
Definition at line 106 of file Magnetosphere.cpp.

|
overridevirtual |
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.
Implements projects::TriAxisSearch.
Definition at line 587 of file Magnetosphere.cpp.


|
overridevirtual |
Initialize project. Can be used, e.g., to read in parameters from the input file.
Initialize the Project. Velocity mesh and particle population parameters are read from the configuration file, and corresponding internal variables are created here. NOTE: Each project must call this function!
Reimplemented from projects::Project.
Definition at line 280 of file Magnetosphere.cpp.

|
overridevirtual |
Implements projects::TriAxisSearch.
Definition at line 549 of file Magnetosphere.cpp.

|
override |
|
overridevirtual |
Set the background and perturbed magnetic fields for this project.
| perBGrid | Grid on which values of the perturbed field can be set if needed. |
| BgBGrid | Grid on which values for the background field can be set if needed, e.g. using the background field functions. |
| technical | Technical fsgrid, available if some of its data is necessary. |
Print a warning message to stderr and abort, one should not use the base class functions.
Reimplemented from projects::Project.
Definition at line 313 of file Magnetosphere.cpp.

| Real projects::Magnetosphere::center[3] |
Definition at line 72 of file Magnetosphere.h.
| std::array<Real, 3> projects::Magnetosphere::constBgB |
Definition at line 68 of file Magnetosphere.h.
| Real projects::Magnetosphere::dipoleInflowB[3] |
Definition at line 96 of file Magnetosphere.h.
| Real projects::Magnetosphere::dipoleMirrorLocationX |
Definition at line 74 of file Magnetosphere.h.
| Real projects::Magnetosphere::dipoleScalingFactor |
Definition at line 73 of file Magnetosphere.h.
| Real projects::Magnetosphere::dipoleTiltPhi |
Definition at line 92 of file Magnetosphere.h.
| Real projects::Magnetosphere::dipoleTiltTheta |
Definition at line 93 of file Magnetosphere.h.
| uint projects::Magnetosphere::dipoleType |
Definition at line 75 of file Magnetosphere.h.
| Real projects::Magnetosphere::dipoleXFull |
Definition at line 94 of file Magnetosphere.h.
| Real projects::Magnetosphere::dipoleXOffset |
Definition at line 100 of file Magnetosphere.h.
| Real projects::Magnetosphere::dipoleXZero |
Definition at line 95 of file Magnetosphere.h.
| Real projects::Magnetosphere::dipoleYOffset |
Definition at line 101 of file Magnetosphere.h.
| Real projects::Magnetosphere::dipoleZOffset |
Definition at line 102 of file Magnetosphere.h.
| uint projects::Magnetosphere::ionosphereGeometry |
Definition at line 71 of file Magnetosphere.h.
| Real projects::Magnetosphere::ionosphereRadius |
Definition at line 70 of file Magnetosphere.h.
| bool projects::Magnetosphere::noDipoleInSW |
Definition at line 69 of file Magnetosphere.h.
| Real projects::Magnetosphere::refine_L1radius |
Definition at line 89 of file Magnetosphere.h.
| Real projects::Magnetosphere::refine_L1tailthick |
Definition at line 90 of file Magnetosphere.h.
| Real projects::Magnetosphere::refine_L2radius |
Definition at line 87 of file Magnetosphere.h.
| Real projects::Magnetosphere::refine_L2tailthick |
Definition at line 88 of file Magnetosphere.h.
| Real projects::Magnetosphere::refine_L3nosexmin |
Definition at line 81 of file Magnetosphere.h.
| Real projects::Magnetosphere::refine_L3radius |
Definition at line 80 of file Magnetosphere.h.
| Real projects::Magnetosphere::refine_L3tailheight |
Definition at line 82 of file Magnetosphere.h.
| Real projects::Magnetosphere::refine_L3tailwidth |
Definition at line 83 of file Magnetosphere.h.
| Real projects::Magnetosphere::refine_L3tailxmax |
Definition at line 85 of file Magnetosphere.h.
| Real projects::Magnetosphere::refine_L3tailxmin |
Definition at line 84 of file Magnetosphere.h.
| Real projects::Magnetosphere::refine_L4nosexmin |
Definition at line 78 of file Magnetosphere.h.
| Real projects::Magnetosphere::refine_L4radius |
Definition at line 77 of file Magnetosphere.h.
| std::vector<MagnetosphereSpeciesParameters> projects::Magnetosphere::speciesParams |
Definition at line 106 of file Magnetosphere.h.
| Real projects::Magnetosphere::zeroOutComponents[3] |
Definition at line 104 of file Magnetosphere.h.