Skip to content

Commit

Permalink
Merge pull request #1022 from lkotipal/new-amr-criteria
Browse files Browse the repository at this point in the history
New AMR criteria, pressure anisotropy and velocity vorticity.
  • Loading branch information
ykempf authored Nov 12, 2024
2 parents cc6068f + fda23d9 commit bcb8ec4
Show file tree
Hide file tree
Showing 18 changed files with 345 additions and 90 deletions.
30 changes: 30 additions & 0 deletions common.h
Original file line number Diff line number Diff line change
Expand Up @@ -165,15 +165,27 @@ namespace CellParams {
P_11, /*!< Pressure P_xx component, computed by Vlasov propagator. */
P_22, /*!< Pressure P_yy component, computed by Vlasov propagator. */
P_33, /*!< Pressure P_zz component, computed by Vlasov propagator. */
P_23, /*!< Pressure P_yz component, computed by Vlasov propagator. */
P_13, /*!< Pressure P_xz component, computed by Vlasov propagator. */
P_12, /*!< Pressure P_xy component, computed by Vlasov propagator. */
P_11_DT2, /*!< Intermediate step value for RK2 time stepping in field solver. Computed from P_11_R and P_11_V. */
P_22_DT2, /*!< Intermediate step value for RK2 time stepping in field solver. Computed from P_22_R and P_22_V. */
P_33_DT2, /*!< Intermediate step value for RK2 time stepping in field solver. Computed from P_33_R and P_33_V. */
P_23_DT2, /*!< Intermediate step value for RK2 time stepping in field solver. Computed from P_23_R and P_23_V. */
P_13_DT2, /*!< Intermediate step value for RK2 time stepping in field solver. Computed from P_13_R and P_13_V. */
P_12_DT2, /*!< Intermediate step value for RK2 time stepping in field solver. Computed from P_12_R and P_12_V. */
P_11_R, /*!< P_xx component after propagation in ordinary space */
P_22_R, /*!< P_yy component after propagation in ordinary space */
P_33_R, /*!< P_zz component after propagation in ordinary space */
P_23_R, /*!< P_yz component after propagation in ordinary space */
P_13_R, /*!< P_xz component after propagation in ordinary space */
P_12_R, /*!< P_xy component after propagation in ordinary space */
P_11_V, /*!< P_xx component after propagation in velocity space */
P_22_V, /*!< P_yy component after propagation in velocity space */
P_33_V, /*!< P_zz component after propagation in velocity space */
P_23_V, /*!< P_yz component after propagation in velocity space */
P_12_V, /*!< P_xy component after propagation in velocity space */
P_13_V, /*!< P_xz component after propagation in velocity space */
EXVOL, /*!< Volume electric field averaged over spatial cell, x-component.*/
EYVOL, /*!< Volume electric field averaged over spatial cell, y-component.*/
EZVOL, /*!< Volume electric field averaged over spatial cell, z-component.*/
Expand Down Expand Up @@ -209,6 +221,8 @@ namespace CellParams {
AMR_DB,
AMR_ALPHA1,
AMR_ALPHA2,
P_ANISOTROPY,
AMR_VORTICITY,
RECENTLY_REFINED,
BULKV_FORCING_X, /*! Externally forced drift velocity (ex. from the ionosphere) */
BULKV_FORCING_Y, /*! Externally forced drift velocity (ex. from the ionosphere) */
Expand All @@ -235,6 +249,22 @@ namespace bvolderivatives {
};
}

namespace vderivatives {
// Essentially a copy from dmoments
enum {
dVxdx, /*!< Derivative of volume-averaged Vx to x-direction. */
dVxdy, /*!< Derivative of volume-averaged Vx to y-direction. */
dVxdz, /*!< Derivative of volume-averaged Vx to z-direction. */
dVydx, /*!< Derivative of volume-averaged Vy to x-direction. */
dVydy, /*!< Derivative of volume-averaged Vy to y-direction. */
dVydz, /*!< Derivative of volume-averaged Vy to z-direction. */
dVzdx, /*!< Derivative of volume-averaged Vz to x-direction. */
dVzdy, /*!< Derivative of volume-averaged Vz to y-direction. */
dVzdz, /*!< Derivative of volume-averaged Vz to z-direction. */
N_V_DERIVATIVES
};
}

// FsGrid< std::array<Real, fsgrids::bfield::N_BFIELD>, FS_STENCIL_WIDTH> & perBGrid,
// FsGrid< std::array<Real, fsgrids::bfield::N_BFIELD>, FS_STENCIL_WIDTH> & perBDt2Grid,
// FsGrid< std::array<Real, fsgrids::efield::N_EFIELD>, FS_STENCIL_WIDTH> & EGrid,
Expand Down
16 changes: 15 additions & 1 deletion datareduction/datareducer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2962,7 +2962,21 @@ void initializeDataReducers(DataReducer * outputReducer, DataReducer * diagnosti
}
if(P::systemWriteAllDROs || lowercase == "vg_amr_alpha2") {
outputReducer->addOperator(new DRO::DataReductionOperatorCellParams("vg_amr_alpha2",CellParams::AMR_ALPHA2,1));
outputReducer->addMetadata(outputReducer->size()-1,"","","$\\alpha_2","");
outputReducer->addMetadata(outputReducer->size()-1,"","","$\\alpha_2$","");
if(!P::systemWriteAllDROs) {
continue;
}
}
if(P::systemWriteAllDROs || lowercase == "vg_pressure_anisotropy") {
outputReducer->addOperator(new DRO::DataReductionOperatorCellParams("vg_pressure_anisotropy",CellParams::P_ANISOTROPY,1));
outputReducer->addMetadata(outputReducer->size()-1,"","","$P_\\perp / P_\\parallel$","");
if(!P::systemWriteAllDROs) {
continue;
}
}
if(P::systemWriteAllDROs || lowercase == "vg_amr_vorticity") {
outputReducer->addOperator(new DRO::DataReductionOperatorCellParams("vg_amr_vorticity",CellParams::AMR_VORTICITY,1));
outputReducer->addMetadata(outputReducer->size()-1,"","","Vorticity","");
if(!P::systemWriteAllDROs) {
continue;
}
Expand Down
43 changes: 43 additions & 0 deletions fieldsolver/derivatives.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include "fs_common.h"
#include "derivatives.hpp"
#include "fs_limiters.h"
#include <Eigen/Geometry>

/*! \brief Low-level spatial derivatives calculation.
*
Expand Down Expand Up @@ -758,15 +759,22 @@ void calculateScaledDeltas(

Real myRho {cell->parameters[CellParams::RHOM]};
Real myU {calculateU(cell)};
Real myV {std::sqrt(std::pow(cell->parameters[CellParams::VX], 2) + std::pow(cell->parameters[CellParams::VY], 2) + std::pow(cell->parameters[CellParams::VZ], 2))};
Real maxV {myV};
std::array<Real, 3> myP = getMomentumDensity(cell);
std::array<Real, 3> myB = getBVol(cell);
for (SpatialCell* neighbor : neighbors) {
Real otherRho = neighbor->parameters[CellParams::RHOM];
Real otherU = calculateU(neighbor);
Real otherV {std::sqrt(std::pow(neighbor->parameters[CellParams::VX], 2) + std::pow(neighbor->parameters[CellParams::VY], 2) + std::pow(neighbor->parameters[CellParams::VZ], 2))};
std::array<Real, 3> otherP = getMomentumDensity(neighbor);
std::array<Real, 3> otherB = getBVol(neighbor);
Real deltaBsq = pow(myB[0] - otherB[0], 2) + pow(myB[1] - otherB[1], 2) + pow(myB[2] - otherB[2], 2);

if (myV < EPS) {
maxV = std::max(maxV,otherV);
}

Real maxRho = std::max(myRho, otherRho);
if (maxRho > EPS) {
dRho = std::max(fabs(myRho - otherRho) / maxRho, dRho);
Expand Down Expand Up @@ -820,13 +828,48 @@ void calculateScaledDeltas(
Bperp = std::sqrt(Bperp);
}

// Now, rotation matrix to get parallel and perpendicular pressure
//Eigen::Quaterniond q {Quaterniond::FromTwoVectors(Eigen::vector3d{0, 0, 1}, Eigen::vector3d{myB[0], myB[1], myB[2]})};
//Eigen::Matrix3d rot = q.toRotationMatrix();
Eigen::Matrix3d rot = Eigen::Quaterniond::FromTwoVectors(Eigen::Vector3d{myB[0], myB[1], myB[2]}, Eigen::Vector3d{0, 0, 1}).normalized().toRotationMatrix();
Eigen::Matrix3d P {
{cell->parameters[CellParams::P_11], cell->parameters[CellParams::P_12], cell->parameters[CellParams::P_13]},
{cell->parameters[CellParams::P_12], cell->parameters[CellParams::P_22], cell->parameters[CellParams::P_23]},
{cell->parameters[CellParams::P_13], cell->parameters[CellParams::P_23], cell->parameters[CellParams::P_33]},
};

Eigen::Matrix3d transposerot = rot.transpose();
Eigen::Matrix3d Pprime = rot * P * transposerot;

Real Panisotropy {0.0};
if (Pprime(2, 2) > EPS) {
Panisotropy = (Pprime(0, 0) + Pprime(1, 1)) / (2 * Pprime(2, 2));
}

// Vorticity
Real dVxdy {cell->derivativesV[vderivatives::dVxdy]};
Real dVxdz {cell->derivativesV[vderivatives::dVxdz]};
Real dVydx {cell->derivativesV[vderivatives::dVydx]};
Real dVydz {cell->derivativesV[vderivatives::dVydz]};
Real dVzdx {cell->derivativesV[vderivatives::dVzdx]};
Real dVzdy {cell->derivativesV[vderivatives::dVzdy]};
Real vorticity {std::sqrt(std::pow(dVxdy - dVydz, 2) + std::pow(dVxdz - dVzdx, 2 ) + std::pow(dVydx - dVxdy, 2))};
//Real vA {std::sqrt(Bsq / (physicalconstants::MU_0 * myRho))};
Real amr_vorticity {0.0};
if (maxV > EPS) {
amr_vorticity = vorticity * cell->parameters[CellParams::DX] / maxV;
}

cell->parameters[CellParams::AMR_DRHO] = dRho;
cell->parameters[CellParams::AMR_DU] = dU;
cell->parameters[CellParams::AMR_DPSQ] = dPsq;
cell->parameters[CellParams::AMR_DBSQ] = dBsq;
cell->parameters[CellParams::AMR_DB] = dB;
cell->parameters[CellParams::AMR_ALPHA1] = alpha;
cell->parameters[CellParams::AMR_ALPHA2] = cell->parameters[CellParams::DX] * J / (Bperp + EPS); // Epsilon in denominator so we don't get infinities
cell->parameters[CellParams::P_ANISOTROPY] = Panisotropy;
// Experimental, current scaling is bulk velocity
cell->parameters[CellParams::AMR_VORTICITY] = amr_vorticity;
}

/*! \brief High-level scaled gradient calculation wrapper function.
Expand Down
30 changes: 30 additions & 0 deletions fieldsolver/gridGlue.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,7 @@ void getFieldsFromFsGrid(
FsGrid< std::array<Real, fsgrids::volfields::N_VOL>, FS_STENCIL_WIDTH> & volumeFieldsGrid,
FsGrid< std::array<Real, fsgrids::bgbfield::N_BGB>, FS_STENCIL_WIDTH> & BgBGrid,
FsGrid< std::array<Real, fsgrids::egradpe::N_EGRADPE>, FS_STENCIL_WIDTH> & EGradPeGrid,
FsGrid< std::array<Real, fsgrids::dmoments::N_DMOMENTS>, FS_STENCIL_WIDTH> & dMomentsGrid,
FsGrid< fsgrids::technical, FS_STENCIL_WIDTH> & technicalGrid,
dccrg::Dccrg<SpatialCell,dccrg::Cartesian_Geometry>& mpiGrid,
const std::vector<CellID>& cells
Expand Down Expand Up @@ -311,7 +312,9 @@ void getFieldsFromFsGrid(
std::array<Real, fsgrids::volfields::N_VOL> * volcell = volumeFieldsGrid.get(fsgridCell);
std::array<Real, fsgrids::bgbfield::N_BGB> * bgcell = BgBGrid.get(fsgridCell);
std::array<Real, fsgrids::egradpe::N_EGRADPE> * egradpecell = EGradPeGrid.get(fsgridCell);
std::array<Real, fsgrids::dmoments::N_DMOMENTS> * dMomentscell = dMomentsGrid.get(fsgridCell);

// TODO consider pruning these and communicating only when required
sendBuffer[ii].sums[FieldsToCommunicate::PERBXVOL] += volcell->at(fsgrids::volfields::PERBXVOL);
sendBuffer[ii].sums[FieldsToCommunicate::PERBYVOL] += volcell->at(fsgrids::volfields::PERBYVOL);
sendBuffer[ii].sums[FieldsToCommunicate::PERBZVOL] += volcell->at(fsgrids::volfields::PERBZVOL);
Expand All @@ -324,6 +327,15 @@ void getFieldsFromFsGrid(
sendBuffer[ii].sums[FieldsToCommunicate::dPERBZVOLdx] += volcell->at(fsgrids::volfields::dPERBZVOLdx) / technicalGrid.DX;
sendBuffer[ii].sums[FieldsToCommunicate::dPERBZVOLdy] += volcell->at(fsgrids::volfields::dPERBZVOLdy) / technicalGrid.DY;
sendBuffer[ii].sums[FieldsToCommunicate::dPERBZVOLdz] += volcell->at(fsgrids::volfields::dPERBZVOLdz) / technicalGrid.DZ;
sendBuffer[ii].sums[FieldsToCommunicate::dVxdx] += dMomentscell->at(fsgrids::dmoments::dVxdx) / technicalGrid.DX;
sendBuffer[ii].sums[FieldsToCommunicate::dVxdy] += dMomentscell->at(fsgrids::dmoments::dVxdy) / technicalGrid.DY;
sendBuffer[ii].sums[FieldsToCommunicate::dVxdz] += dMomentscell->at(fsgrids::dmoments::dVxdz) / technicalGrid.DZ;
sendBuffer[ii].sums[FieldsToCommunicate::dVydx] += dMomentscell->at(fsgrids::dmoments::dVydx) / technicalGrid.DX;
sendBuffer[ii].sums[FieldsToCommunicate::dVydy] += dMomentscell->at(fsgrids::dmoments::dVydy) / technicalGrid.DY;
sendBuffer[ii].sums[FieldsToCommunicate::dVydz] += dMomentscell->at(fsgrids::dmoments::dVydz) / technicalGrid.DZ;
sendBuffer[ii].sums[FieldsToCommunicate::dVzdx] += dMomentscell->at(fsgrids::dmoments::dVzdx) / technicalGrid.DX;
sendBuffer[ii].sums[FieldsToCommunicate::dVzdy] += dMomentscell->at(fsgrids::dmoments::dVzdy) / technicalGrid.DY;
sendBuffer[ii].sums[FieldsToCommunicate::dVzdz] += dMomentscell->at(fsgrids::dmoments::dVzdz) / technicalGrid.DZ;
sendBuffer[ii].sums[FieldsToCommunicate::BGBXVOL] += bgcell->at(fsgrids::bgbfield::BGBXVOL);
sendBuffer[ii].sums[FieldsToCommunicate::BGBYVOL] += bgcell->at(fsgrids::bgbfield::BGBYVOL);
sendBuffer[ii].sums[FieldsToCommunicate::BGBZVOL] += bgcell->at(fsgrids::bgbfield::BGBZVOL);
Expand Down Expand Up @@ -383,6 +395,15 @@ void getFieldsFromFsGrid(
mpiGrid[cellAggregate.first]->derivativesBVOL[bvolderivatives::dPERBZVOLdx] = cellAggregate.second.sums[FieldsToCommunicate::dPERBZVOLdx] / cellAggregate.second.cells;
mpiGrid[cellAggregate.first]->derivativesBVOL[bvolderivatives::dPERBZVOLdy] = cellAggregate.second.sums[FieldsToCommunicate::dPERBZVOLdy] / cellAggregate.second.cells;
mpiGrid[cellAggregate.first]->derivativesBVOL[bvolderivatives::dPERBZVOLdz] = cellAggregate.second.sums[FieldsToCommunicate::dPERBZVOLdz] / cellAggregate.second.cells;
mpiGrid[cellAggregate.first]->derivativesV[vderivatives::dVxdx] = cellAggregate.second.sums[FieldsToCommunicate::dVxdx] / cellAggregate.second.cells;
mpiGrid[cellAggregate.first]->derivativesV[vderivatives::dVxdy] = cellAggregate.second.sums[FieldsToCommunicate::dVxdy] / cellAggregate.second.cells;
mpiGrid[cellAggregate.first]->derivativesV[vderivatives::dVxdz] = cellAggregate.second.sums[FieldsToCommunicate::dVxdz] / cellAggregate.second.cells;
mpiGrid[cellAggregate.first]->derivativesV[vderivatives::dVydx] = cellAggregate.second.sums[FieldsToCommunicate::dVydx] / cellAggregate.second.cells;
mpiGrid[cellAggregate.first]->derivativesV[vderivatives::dVydy] = cellAggregate.second.sums[FieldsToCommunicate::dVydy] / cellAggregate.second.cells;
mpiGrid[cellAggregate.first]->derivativesV[vderivatives::dVydz] = cellAggregate.second.sums[FieldsToCommunicate::dVydz] / cellAggregate.second.cells;
mpiGrid[cellAggregate.first]->derivativesV[vderivatives::dVzdx] = cellAggregate.second.sums[FieldsToCommunicate::dVzdx] / cellAggregate.second.cells;
mpiGrid[cellAggregate.first]->derivativesV[vderivatives::dVzdy] = cellAggregate.second.sums[FieldsToCommunicate::dVzdy] / cellAggregate.second.cells;
mpiGrid[cellAggregate.first]->derivativesV[vderivatives::dVzdz] = cellAggregate.second.sums[FieldsToCommunicate::dVzdz] / cellAggregate.second.cells;
cellParams[CellParams::BGBXVOL] = cellAggregate.second.sums[FieldsToCommunicate::BGBXVOL] / cellAggregate.second.cells;
cellParams[CellParams::BGBYVOL] = cellAggregate.second.sums[FieldsToCommunicate::BGBYVOL] / cellAggregate.second.cells;
cellParams[CellParams::BGBZVOL] = cellAggregate.second.sums[FieldsToCommunicate::BGBZVOL] / cellAggregate.second.cells;
Expand Down Expand Up @@ -410,6 +431,15 @@ void getFieldsFromFsGrid(
mpiGrid[cellAggregate.first]->derivativesBVOL[bvolderivatives::dPERBZVOLdx] = 0;
mpiGrid[cellAggregate.first]->derivativesBVOL[bvolderivatives::dPERBZVOLdy] = 0;
mpiGrid[cellAggregate.first]->derivativesBVOL[bvolderivatives::dPERBZVOLdz] = 0;
mpiGrid[cellAggregate.first]->derivativesV[vderivatives::dVxdx] = 0;
mpiGrid[cellAggregate.first]->derivativesV[vderivatives::dVxdy] = 0;
mpiGrid[cellAggregate.first]->derivativesV[vderivatives::dVxdz] = 0;
mpiGrid[cellAggregate.first]->derivativesV[vderivatives::dVydx] = 0;
mpiGrid[cellAggregate.first]->derivativesV[vderivatives::dVydy] = 0;
mpiGrid[cellAggregate.first]->derivativesV[vderivatives::dVydz] = 0;
mpiGrid[cellAggregate.first]->derivativesV[vderivatives::dVzdx] = 0;
mpiGrid[cellAggregate.first]->derivativesV[vderivatives::dVzdy] = 0;
mpiGrid[cellAggregate.first]->derivativesV[vderivatives::dVzdz] = 0;
cellParams[CellParams::BGBXVOL] = 0;
cellParams[CellParams::BGBYVOL] = 0;
cellParams[CellParams::BGBZVOL] = 0;
Expand Down
23 changes: 17 additions & 6 deletions fieldsolver/gridGlue.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,15 @@ enum FieldsToCommunicate {
CURVATUREX,
CURVATUREY,
CURVATUREZ,
dVxdx,
dVxdy,
dVxdz,
dVydx,
dVydy,
dVydz,
dVzdx,
dVzdy,
dVzdz,
N_FIELDSTOCOMMUNICATE
};

Expand Down Expand Up @@ -64,12 +73,14 @@ void feedMomentsIntoFsGrid(dccrg::Dccrg<SpatialCell,dccrg::Cartesian_Geometry>&
*
* This function assumes that proper grid coupling has been set up.
*/
void getFieldsFromFsGrid(FsGrid< std::array<Real, fsgrids::volfields::N_VOL>, FS_STENCIL_WIDTH> & volumeFieldsGrid,
FsGrid< std::array<Real, fsgrids::bgbfield::N_BGB>, FS_STENCIL_WIDTH> & BgBGrid,
FsGrid< std::array<Real, fsgrids::egradpe::N_EGRADPE>, FS_STENCIL_WIDTH> & EGradPeGrid,
FsGrid< fsgrids::technical, FS_STENCIL_WIDTH> & technicalGrid,
dccrg::Dccrg<SpatialCell,dccrg::Cartesian_Geometry>& mpiGrid,
const std::vector<CellID>& cells
void getFieldsFromFsGrid(
FsGrid< std::array<Real, fsgrids::volfields::N_VOL>, FS_STENCIL_WIDTH> & volumeFieldsGrid,
FsGrid< std::array<Real, fsgrids::bgbfield::N_BGB>, FS_STENCIL_WIDTH> & BgBGrid,
FsGrid< std::array<Real, fsgrids::egradpe::N_EGRADPE>, FS_STENCIL_WIDTH> & EGradPeGrid,
FsGrid< std::array<Real, fsgrids::dmoments::N_DMOMENTS>, FS_STENCIL_WIDTH> & dMomentsGrid,
FsGrid< fsgrids::technical, FS_STENCIL_WIDTH> & technicalGrid,
dccrg::Dccrg<SpatialCell,dccrg::Cartesian_Geometry>& mpiGrid,
const std::vector<CellID>& cells
);

/*! Copy background B fields and store them into DCCRG
Expand Down
3 changes: 2 additions & 1 deletion grid.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ void initializeGrids(
FsGrid< std::array<Real, fsgrids::bgbfield::N_BGB>, FS_STENCIL_WIDTH> & BgBGrid,
FsGrid< std::array<Real, fsgrids::moments::N_MOMENTS>, FS_STENCIL_WIDTH> & momentsGrid,
FsGrid< std::array<Real, fsgrids::moments::N_MOMENTS>, FS_STENCIL_WIDTH> & momentsDt2Grid,
FsGrid< std::array<Real, fsgrids::dmoments::N_DMOMENTS>, FS_STENCIL_WIDTH> & dMomentsGrid,
FsGrid< std::array<Real, fsgrids::efield::N_EFIELD>, FS_STENCIL_WIDTH> & EGrid,
FsGrid< std::array<Real, fsgrids::egradpe::N_EGRADPE>, FS_STENCIL_WIDTH> & EGradPeGrid,
FsGrid< std::array<Real, fsgrids::volfields::N_VOL>, FS_STENCIL_WIDTH> & volGrid,
Expand Down Expand Up @@ -356,7 +357,7 @@ void initializeGrids(
volGrid.updateGhostCells();
fsGridGhostTimer.stop();
phiprof::Timer getFieldsTimer {"getFieldsFromFsGrid"};
getFieldsFromFsGrid(volGrid, BgBGrid, EGradPeGrid, technicalGrid, mpiGrid, cells);
getFieldsFromFsGrid(volGrid, BgBGrid, EGradPeGrid, dMomentsGrid, technicalGrid, mpiGrid, cells);
getFieldsTimer.stop();

setBTimer.stop();
Expand Down
1 change: 1 addition & 0 deletions grid.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ void initializeGrids(
FsGrid< std::array<Real, fsgrids::bgbfield::N_BGB>, FS_STENCIL_WIDTH> & BgBGrid,
FsGrid< std::array<Real, fsgrids::moments::N_MOMENTS>, FS_STENCIL_WIDTH> & momentsGrid,
FsGrid< std::array<Real, fsgrids::moments::N_MOMENTS>, FS_STENCIL_WIDTH> & momentsDt2Grid,
FsGrid< std::array<Real, fsgrids::dmoments::N_DMOMENTS>, FS_STENCIL_WIDTH> & dMomentsGrid,
FsGrid< std::array<Real, fsgrids::efield::N_EFIELD>, FS_STENCIL_WIDTH> & EGrid,
FsGrid< std::array<Real, fsgrids::egradpe::N_EGRADPE>, FS_STENCIL_WIDTH> & EGradPeGrid,
FsGrid< std::array<Real, fsgrids::volfields::N_VOL>, FS_STENCIL_WIDTH> & volGrid,
Expand Down
Loading

0 comments on commit bcb8ec4

Please sign in to comment.