29#include <dccrg_cartesian_geometry.hpp>
54 FieldSolverData(
const fsgrid::FsData<std::array<Real, fsgrids::bfield::N_BFIELD>>& perb,
55 const fsgrid::FsData<std::array<Real, fsgrids::bfield::N_BFIELD>>& perbdt2,
56 const fsgrid::FsData<std::array<Real, fsgrids::efield::N_EFIELD>>& e,
57 const fsgrid::FsData<std::array<Real, fsgrids::efield::N_EFIELD>>& edt2,
58 const fsgrid::FsData<std::array<Real, fsgrids::ehall::N_EHALL>>& ehall,
59 const fsgrid::FsData<std::array<Real, fsgrids::egradpe::N_EGRADPE>>& egradpe,
60 const fsgrid::FsData<std::array<Real, fsgrids::egradpe::N_EGRADPE>>& egradpedt2,
61 const fsgrid::FsData<std::array<Real, fsgrids::moments::N_MOMENTS>>&
moments,
62 const fsgrid::FsData<std::array<Real, fsgrids::moments::N_MOMENTS>>& momentsdt2,
63 const fsgrid::FsData<std::array<Real, fsgrids::dperb::N_DPERB>>& dperb,
64 const fsgrid::FsData<std::array<Real, fsgrids::dmoments::N_DMOMENTS>>& dmoments,
65 const fsgrid::FsData<std::array<Real, fsgrids::dmoments::N_DMOMENTS>>& dmomentsdt2,
66 const fsgrid::FsData<std::array<Real, fsgrids::bgbfield::N_BGB>>& bgb,
67 const fsgrid::FsData<std::array<Real, fsgrids::volfields::N_VOL>>&
vol,
78void initializeGrids(
int argn,
char** argc, dccrg::Dccrg<SpatialCell, dccrg::Cartesian_Geometry>& mpiGrid,
79 fsgrid::FsData<std::array<Real, fsgrids::bfield::N_BFIELD>>& perb,
80 fsgrid::FsData<std::array<Real, fsgrids::bgbfield::N_BGB>>& bgb,
81 fsgrid::FsData<std::array<Real, fsgrids::moments::N_MOMENTS>>& moments,
82 fsgrid::FsData<std::array<Real, fsgrids::moments::N_MOMENTS>>& momentsdt2,
83 fsgrid::FsData<std::array<Real, fsgrids::dmoments::N_DMOMENTS>>& dmoments,
84 fsgrid::FsData<std::array<Real, fsgrids::efield::N_EFIELD>>& e,
85 fsgrid::FsData<std::array<Real, fsgrids::egradpe::N_EGRADPE>>& egradpe,
86 fsgrid::FsData<std::array<Real, fsgrids::volfields::N_VOL>>& vol,
96 bool doTranslationLists =
true);
100void prepareAMRLists(dccrg::Dccrg<SpatialCell,dccrg::Cartesian_Geometry>& mpiGrid);
112 dccrg::Dccrg<SpatialCell,dccrg::Cartesian_Geometry>& mpiGrid,
136 const std::vector<CellID>& cellsToAdjust,
137 bool doPrepareToReceiveBlocks,
SysBoundary contains the SysBoundaryConditions used in the simulation.
fsgrid::FsGrid< FS_STENCIL_WIDTH > FieldSolverGrid
void deallocateRemoteCellBlocks(dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid)
void recalculateLocalCellsCache(const dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid)
void shrink_to_fit_grid_data(dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid)
void initializeGrids(int argn, char **argc, dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, fsgrid::FsData< std::array< Real, fsgrids::bfield::N_BFIELD > > &perb, fsgrid::FsData< std::array< Real, fsgrids::bgbfield::N_BGB > > &bgb, fsgrid::FsData< std::array< Real, fsgrids::moments::N_MOMENTS > > &moments, fsgrid::FsData< std::array< Real, fsgrids::moments::N_MOMENTS > > &momentsdt2, fsgrid::FsData< std::array< Real, fsgrids::dmoments::N_DMOMENTS > > &dmoments, fsgrid::FsData< std::array< Real, fsgrids::efield::N_EFIELD > > &e, fsgrid::FsData< std::array< Real, fsgrids::egradpe::N_EGRADPE > > &egradpe, fsgrid::FsData< std::array< Real, fsgrids::volfields::N_VOL > > &vol, fsgrid::FsData< fsgrids::technical > &technical, FieldSolverGrid &fsgrid, SysBoundary &sysBoundaries, Project &project)
Initialize DCCRG and fsgrids.
void mapRefinement(dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, fsgrids::technicalspan technical, FieldSolverGrid &fsgrid)
bool adaptRefinement(dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, fsgrids::technicalspan technical, FieldSolverGrid &fsgrid, SysBoundary &sysBoundaries, Project &project, int useStatic=-1)
void prepareAMRLists(dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid)
void balanceLoad(dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, SysBoundary &sysBoundaries, fsgrids::technicalspan technical, FieldSolverGrid &fsgrid, bool doTranslationLists=true)
Balance load.
void setFaceNeighborRanks(dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid)
void updateRemoteVelocityBlockLists(dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const uint popID, const uint neighborhood=Neighborhoods::DIST_FUNC)
bool adjustVelocityBlocks(dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const std::vector< CellID > &cellsToAdjust, bool doPrepareToReceiveBlocks, const uint popID)
std::span< const std::array< Real, fsgrids::dmoments::N_DMOMENTS > > constdmomentsspan
std::span< const std::array< Real, bgbfield::N_BGB > > constbgbspan
std::span< const std::array< Real, fsgrids::efield::N_EFIELD > > constefieldspan
std::span< const std::array< Real, fsgrids::moments::N_MOMENTS > > constmomentsspan
std::span< technical > technicalspan
std::span< const std::array< Real, fsgrids::ehall::N_EHALL > > constehallspan
std::span< const technical > consttechnicalspan
std::span< const std::array< Real, fsgrids::volfields::N_VOL > > constvolspan
std::span< const std::array< Real, fsgrids::bfield::N_BFIELD > > constperbspan
std::span< const std::array< Real, fsgrids::egradpe::N_EGRADPE > > constegradpespan
std::span< const std::array< Real, fsgrids::dperb::N_DPERB > > constdperbspan
fsgrids::consttechnicalspan technical
fsgrids::constegradpespan EGradPeDt2
fsgrids::constbgbspan BgB
fsgrids::constefieldspan E
fsgrids::constehallspan EHall
fsgrids::constmomentsspan moments
FieldSolverData(const fsgrid::FsData< std::array< Real, fsgrids::bfield::N_BFIELD > > &perb, const fsgrid::FsData< std::array< Real, fsgrids::bfield::N_BFIELD > > &perbdt2, const fsgrid::FsData< std::array< Real, fsgrids::efield::N_EFIELD > > &e, const fsgrid::FsData< std::array< Real, fsgrids::efield::N_EFIELD > > &edt2, const fsgrid::FsData< std::array< Real, fsgrids::ehall::N_EHALL > > &ehall, const fsgrid::FsData< std::array< Real, fsgrids::egradpe::N_EGRADPE > > &egradpe, const fsgrid::FsData< std::array< Real, fsgrids::egradpe::N_EGRADPE > > &egradpedt2, const fsgrid::FsData< std::array< Real, fsgrids::moments::N_MOMENTS > > &moments, const fsgrid::FsData< std::array< Real, fsgrids::moments::N_MOMENTS > > &momentsdt2, const fsgrid::FsData< std::array< Real, fsgrids::dperb::N_DPERB > > &dperb, const fsgrid::FsData< std::array< Real, fsgrids::dmoments::N_DMOMENTS > > &dmoments, const fsgrid::FsData< std::array< Real, fsgrids::dmoments::N_DMOMENTS > > &dmomentsdt2, const fsgrid::FsData< std::array< Real, fsgrids::bgbfield::N_BGB > > &bgb, const fsgrid::FsData< std::array< Real, fsgrids::volfields::N_VOL > > &vol, const fsgrid::FsData< fsgrids::technical > &technical, FieldSolverGrid &fsgrid)
fsgrids::constdperbspan dPerB
fsgrids::constmomentsspan momentsDt2
fsgrids::constdmomentsspan dMomentsDt2
fsgrids::constefieldspan EDt2
fsgrids::constdmomentsspan dMoments
fsgrids::constegradpespan EGradPe
fsgrids::constperbspan perB
fsgrids::constvolspan vol
fsgrids::constperbspan perBDt2