Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
7872f23
Add hyperresistivity term to fieldsolver
JonasSuni Jul 15, 2025
bdd6860
Bug fixes
JonasSuni Jul 15, 2025
a7b14a7
More bug fixes
JonasSuni Jul 15, 2025
2bd15bb
Fix sign error
JonasSuni Jul 16, 2025
433b3f5
Test skip ghost updates of grids used for centers only
JonasSuni Jul 16, 2025
dea4a72
Fix typos
JonasSuni Jul 16, 2025
dbc1d0d
Fix correct header
JonasSuni Jul 16, 2025
bd88356
Refactoring
JonasSuni Jul 16, 2025
e560c0e
Bug fix
JonasSuni Jul 16, 2025
b31c3eb
Define M_PI
JonasSuni Jul 16, 2025
cd69eff
Test compiling nonsense
JonasSuni Jul 16, 2025
892f6d1
Remove garbage
JonasSuni Jul 16, 2025
12f5b26
Test returning 0
JonasSuni Jul 16, 2025
65da7bc
Test simpler logic
JonasSuni Jul 16, 2025
c62db2c
HyperTerm update dperb ghosts only if hallterm disabled
JonasSuni Jul 17, 2025
8fd5157
Test just return 0 if needed
JonasSuni Jul 17, 2025
571ba75
Stupid bug
JonasSuni Jul 17, 2025
8652124
Not enough division by DX
JonasSuni Jul 17, 2025
816fae7
Test return all the complex behaviour
JonasSuni Jul 17, 2025
1f89da2
Remove fancy derivatives, add factor for controlling hyperterm streng…
JonasSuni Jul 18, 2025
e11d02a
Bug fix
JonasSuni Jul 18, 2025
a28f9d3
Missing )
JonasSuni Jul 18, 2025
5f2cbb9
Hypperresistivity E DRO
JonasSuni Jul 23, 2025
421e6c1
Add relevant stuff to iowrite
JonasSuni Jul 23, 2025
9c40350
Bug fix
JonasSuni Jul 23, 2025
a88acc9
More bug fix
JonasSuni Jul 23, 2025
4d7a2cc
More bug fixes
JonasSuni Jul 23, 2025
b6f8972
Merge remote-tracking branch 'upstream/dev' into ohm_hyper
JonasSuni Jul 29, 2025
df87208
Fix error in hyperres coefficient
JonasSuni Jul 30, 2025
5da2856
Implement whistler test
JonasSuni Aug 1, 2025
52df9b4
Test
JonasSuni Aug 1, 2025
d67e493
Fix
JonasSuni Aug 1, 2025
3909e27
Bug fix
JonasSuni Aug 1, 2025
8cee4ae
Test
JonasSuni Aug 1, 2025
841d49a
Update config
JonasSuni Aug 1, 2025
caaece8
Reconnection test
JonasSuni Aug 5, 2025
7de1d9b
Bug fix
JonasSuni Aug 5, 2025
17d984a
Fix
JonasSuni Aug 5, 2025
90744a1
Change behaviour of rho pert
JonasSuni Aug 5, 2025
f03fa26
Fix
JonasSuni Aug 5, 2025
2037374
Test velocity perturb
JonasSuni Aug 5, 2025
cbb0f80
Test v perturbation only in middle
JonasSuni Aug 5, 2025
9e94f05
Bug fix
JonasSuni Aug 5, 2025
573442d
Change to use velocity in entire box
JonasSuni Aug 5, 2025
9b953dc
Bug fix
JonasSuni Aug 5, 2025
b1a4bcc
Test decreased rho in middle
JonasSuni Aug 5, 2025
b1316fe
Fix error in rhofac calculation
JonasSuni Aug 5, 2025
d75805d
Fix rho initialisation to assure constant total pressure
JonasSuni Aug 6, 2025
e134c87
Test magnetic island in reconnection test
JonasSuni Aug 11, 2025
23d6e82
Bug fix
JonasSuni Aug 11, 2025
7e3e3dc
Test
JonasSuni Aug 11, 2025
916cfb3
Scale island strength
JonasSuni Aug 11, 2025
87ede95
Merge remote-tracking branch 'upstream/dev' into hyper_pr
JonasSuni Aug 11, 2025
3e278d1
Cleaned up code for Pull Request
JonasSuni Aug 11, 2025
9056af0
Improved documentation
JonasSuni Aug 11, 2025
a0be27d
Update dPerB ghost cells in Hyper term only if Hall term is not used
JonasSuni Aug 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ else
endif

# Add field solver objects
OBJS_FSOLVER = ldz_magnetic_field.o ldz_volume.o derivatives.o ldz_electric_field.o ldz_hall.o ldz_gradpe.o
OBJS_FSOLVER = ldz_magnetic_field.o ldz_volume.o derivatives.o ldz_electric_field.o ldz_hall.o ldz_gradpe.o ldz_hyper.o

# Include autogenerated dependency files, if they exist
-include $(OBJS_FSOLVER:%.o=%.d)
Expand Down
7 changes: 7 additions & 0 deletions common.h
Original file line number Diff line number Diff line change
Expand Up @@ -321,6 +321,13 @@ namespace fsgrids {
N_EGRADPE
};

enum ehyper {
EXHYPER, /*!< Hyperresistivity term x.*/
EYHYPER, /*!< Hyperresistivity term y.*/
EZHYPER, /*!< Hyperresistivity term z.*/
N_EHYPER
};

enum moments {
RHOM, /*!< Overall mass density. Calculated by Vlasov propagator, used to propagate fields.*/
RHOQ, /*!< Overall charge density. Calculated by Vlasov propagator, used to propagate fields.*/
Expand Down
128 changes: 127 additions & 1 deletion datareduction/datareducer.cpp

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions datareduction/datareducer.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ class DataReducer {
FsGrid< std::array<Real, fsgrids::efield::N_EFIELD>, FS_STENCIL_WIDTH> & EGrid,
FsGrid< std::array<Real, fsgrids::ehall::N_EHALL>, FS_STENCIL_WIDTH> & EHallGrid,
FsGrid< std::array<Real, fsgrids::egradpe::N_EGRADPE>, FS_STENCIL_WIDTH> & EGradPeGrid,
FsGrid< std::array<Real, fsgrids::ehyper::N_EHYPER>, FS_STENCIL_WIDTH> & EHyperGrid,
FsGrid< std::array<Real, fsgrids::moments::N_MOMENTS>, FS_STENCIL_WIDTH> & momentsGrid,
FsGrid< std::array<Real, fsgrids::dperb::N_DPERB>, FS_STENCIL_WIDTH> & dPerBGrid,
FsGrid< std::array<Real, fsgrids::dmoments::N_DMOMENTS>, FS_STENCIL_WIDTH> & dMomentsGrid,
Expand Down
3 changes: 2 additions & 1 deletion datareduction/datareductionoperator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ namespace DRO {
FsGrid< std::array<Real, fsgrids::efield::N_EFIELD>, FS_STENCIL_WIDTH> & EGrid,
FsGrid< std::array<Real, fsgrids::ehall::N_EHALL>, FS_STENCIL_WIDTH> & EHallGrid,
FsGrid< std::array<Real, fsgrids::egradpe::N_EGRADPE>, FS_STENCIL_WIDTH> & EGradPeGrid,
FsGrid< std::array<Real, fsgrids::ehyper::N_EHYPER>, FS_STENCIL_WIDTH> & EHyperGrid,
FsGrid< std::array<Real, fsgrids::moments::N_MOMENTS>, FS_STENCIL_WIDTH> & momentsGrid,
FsGrid< std::array<Real, fsgrids::dperb::N_DPERB>, FS_STENCIL_WIDTH> & dPerBGrid,
FsGrid< std::array<Real, fsgrids::dmoments::N_DMOMENTS>, FS_STENCIL_WIDTH> & dMomentsGrid,
Expand All @@ -150,7 +151,7 @@ namespace DRO {
attribs["variableLaTeX"]=variableLaTeX;

std::vector<double> varBuffer =
lambda(perBGrid,EGrid,EHallGrid,EGradPeGrid,momentsGrid,dPerBGrid,dMomentsGrid,BgBGrid,volGrid,technicalGrid);
lambda(perBGrid,EGrid,EHallGrid,EGradPeGrid,EHyperGrid,momentsGrid,dPerBGrid,dMomentsGrid,BgBGrid,volGrid,technicalGrid);

std::array<FsGridTools::FsIndex_t,3>& gridSize = technicalGrid.getLocalSize();
int vectorSize;
Expand Down
2 changes: 2 additions & 0 deletions datareduction/datareductionoperator.h
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ namespace DRO {
FsGrid< std::array<Real, fsgrids::efield::N_EFIELD>, FS_STENCIL_WIDTH> & EGrid,
FsGrid< std::array<Real, fsgrids::ehall::N_EHALL>, FS_STENCIL_WIDTH> & EHallGrid,
FsGrid< std::array<Real, fsgrids::egradpe::N_EGRADPE>, FS_STENCIL_WIDTH> & EGradPeGrid,
FsGrid< std::array<Real, fsgrids::ehyper::N_EHYPER>, FS_STENCIL_WIDTH> & EHyperGrid,
FsGrid< std::array<Real, fsgrids::moments::N_MOMENTS>, FS_STENCIL_WIDTH> & momentsGrid,
FsGrid< std::array<Real, fsgrids::dperb::N_DPERB>, FS_STENCIL_WIDTH> & dPerBGrid,
FsGrid< std::array<Real, fsgrids::dmoments::N_DMOMENTS>, FS_STENCIL_WIDTH> & dMomentsGrid,
Expand All @@ -120,6 +121,7 @@ namespace DRO {
FsGrid< std::array<Real, fsgrids::efield::N_EFIELD>, FS_STENCIL_WIDTH> & EGrid,
FsGrid< std::array<Real, fsgrids::ehall::N_EHALL>, FS_STENCIL_WIDTH> & EHallGrid,
FsGrid< std::array<Real, fsgrids::egradpe::N_EGRADPE>, FS_STENCIL_WIDTH> & EGradPeGrid,
FsGrid< std::array<Real, fsgrids::ehyper::N_EHYPER>, FS_STENCIL_WIDTH> & EHyperGrid,
FsGrid< std::array<Real, fsgrids::moments::N_MOMENTS>, FS_STENCIL_WIDTH> & momentsGrid,
FsGrid< std::array<Real, fsgrids::dperb::N_DPERB>, FS_STENCIL_WIDTH> & dPerBGrid,
FsGrid< std::array<Real, fsgrids::dmoments::N_DMOMENTS>, FS_STENCIL_WIDTH> & dMomentsGrid,
Expand Down
2 changes: 2 additions & 0 deletions fieldsolver/fs_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ bool propagateFields(
FsGrid< std::array<Real, fsgrids::ehall::N_EHALL>, FS_STENCIL_WIDTH> & EHallGrid,
FsGrid< std::array<Real, fsgrids::egradpe::N_EGRADPE>, FS_STENCIL_WIDTH> & EGradPeGrid,
FsGrid< std::array<Real, fsgrids::egradpe::N_EGRADPE>, FS_STENCIL_WIDTH> & EGradPeDt2Grid,
FsGrid< std::array<Real, fsgrids::ehyper::N_EHYPER>, FS_STENCIL_WIDTH> & EHyperGrid,
FsGrid< std::array<Real, fsgrids::ehyper::N_EHYPER>, FS_STENCIL_WIDTH> & EHyperDt2Grid,
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::dperb::N_DPERB>, FS_STENCIL_WIDTH> & dPerBGrid,
Expand Down
80 changes: 79 additions & 1 deletion fieldsolver/ldz_electric_field.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -456,6 +456,7 @@ void calculateEdgeElectricFieldX(
FsGrid< std::array<Real, fsgrids::efield::N_EFIELD>, FS_STENCIL_WIDTH> & EGrid,
FsGrid< std::array<Real, fsgrids::ehall::N_EHALL>, FS_STENCIL_WIDTH> & EHallGrid,
FsGrid< std::array<Real, fsgrids::egradpe::N_EGRADPE>, FS_STENCIL_WIDTH> & EGradPeGrid,
FsGrid< std::array<Real, fsgrids::ehyper::N_EHYPER>, FS_STENCIL_WIDTH> & EHyperGrid,
FsGrid< std::array<Real, fsgrids::moments::N_MOMENTS>, FS_STENCIL_WIDTH> & momentsGrid,
FsGrid< std::array<Real, fsgrids::dperb::N_DPERB>, FS_STENCIL_WIDTH> & dPerBGrid,
FsGrid< std::array<Real, fsgrids::dmoments::N_DMOMENTS>, FS_STENCIL_WIDTH> & dMomentsGrid,
Expand Down Expand Up @@ -584,6 +585,11 @@ void calculateEdgeElectricFieldX(
Ex_SW += EGradPeGrid.get(i,j,k)->at(fsgrids::egradpe::EXGRADPE);
}

// Hyperresistivity term
if(Parameters::ohmHyperTerm > 0) {
Ex_SW += EHyperGrid.get(i,j,k)->at(fsgrids::ehyper::EXHYPER);
}

#ifndef FS_1ST_ORDER_SPACE
// 2nd order terms:
Ex_SW += +HALF*((By_S - HALF*dBydz_S)*(-dmoments_SW->at(fsgrids::dmoments::dVzdy) - dmoments_SW->at(fsgrids::dmoments::dVzdz)) - dBydz_S*Vz0 + SIXTH*dBydx_S*dmoments_SW->at(fsgrids::dmoments::dVzdx));
Expand Down Expand Up @@ -638,6 +644,11 @@ void calculateEdgeElectricFieldX(
if(Parameters::ohmGradPeTerm > 0) {
Ex_SE += EGradPeGrid.get(i,j-1,k)->at(fsgrids::egradpe::EXGRADPE);
}

// Hyperresistivity term
if(Parameters::ohmHyperTerm > 0) {
Ex_SE += EHyperGrid.get(i,j-1,k)->at(fsgrids::ehyper::EXHYPER);
}

#ifndef FS_1ST_ORDER_SPACE
// 2nd order terms:
Expand Down Expand Up @@ -694,6 +705,11 @@ void calculateEdgeElectricFieldX(
if(Parameters::ohmGradPeTerm > 0) {
Ex_NW += EGradPeGrid.get(i,j,k-1)->at(fsgrids::egradpe::EXGRADPE);
}

// Hyperresistivity term
if(Parameters::ohmHyperTerm > 0) {
Ex_NW += EHyperGrid.get(i,j,k-1)->at(fsgrids::ehyper::EXHYPER);
}

#ifndef FS_1ST_ORDER_SPACE
// 2nd order terms:
Expand Down Expand Up @@ -750,6 +766,11 @@ void calculateEdgeElectricFieldX(
if(Parameters::ohmGradPeTerm > 0) {
Ex_NE += EGradPeGrid.get(i,j-1,k-1)->at(fsgrids::egradpe::EXGRADPE);
}

// Hyperresistivity term
if(Parameters::ohmHyperTerm > 0) {
Ex_NE += EHyperGrid.get(i,j-1,k-1)->at(fsgrids::ehyper::EXHYPER);
}

#ifndef FS_1ST_ORDER_SPACE
// 2nd order terms:
Expand Down Expand Up @@ -814,6 +835,7 @@ void calculateEdgeElectricFieldY(
FsGrid< std::array<Real, fsgrids::efield::N_EFIELD>, FS_STENCIL_WIDTH> & EGrid,
FsGrid< std::array<Real, fsgrids::ehall::N_EHALL>, FS_STENCIL_WIDTH> & EHallGrid,
FsGrid< std::array<Real, fsgrids::egradpe::N_EGRADPE>, FS_STENCIL_WIDTH> & EGradPeGrid,
FsGrid< std::array<Real, fsgrids::ehyper::N_EHYPER>, FS_STENCIL_WIDTH> & EHyperGrid,
FsGrid< std::array<Real, fsgrids::moments::N_MOMENTS>, FS_STENCIL_WIDTH> & momentsGrid,
FsGrid< std::array<Real, fsgrids::dperb::N_DPERB>, FS_STENCIL_WIDTH> & dPerBGrid,
FsGrid< std::array<Real, fsgrids::dmoments::N_DMOMENTS>, FS_STENCIL_WIDTH> & dMomentsGrid,
Expand Down Expand Up @@ -940,6 +962,11 @@ void calculateEdgeElectricFieldY(
if(Parameters::ohmGradPeTerm > 0) {
Ey_SW += EGradPeGrid.get(i,j,k)->at(fsgrids::egradpe::EYGRADPE);
}

// Hyperresistivity term
if(Parameters::ohmHyperTerm > 0) {
Ey_SW += EHyperGrid.get(i,j,k)->at(fsgrids::ehyper::EYHYPER);
}

#ifndef FS_1ST_ORDER_SPACE
// 2nd order terms
Expand Down Expand Up @@ -996,6 +1023,11 @@ void calculateEdgeElectricFieldY(
if(Parameters::ohmGradPeTerm > 0) {
Ey_SE += EGradPeGrid.get(i,j,k-1)->at(fsgrids::egradpe::EYGRADPE);
}

// Hyperresistivity term
if(Parameters::ohmHyperTerm > 0) {
Ey_SE += EHyperGrid.get(i,j,k-1)->at(fsgrids::ehyper::EYHYPER);
}

#ifndef FS_1ST_ORDER_SPACE
// 2nd order terms:
Expand Down Expand Up @@ -1052,6 +1084,11 @@ void calculateEdgeElectricFieldY(
if(Parameters::ohmGradPeTerm > 0) {
Ey_NW += EGradPeGrid.get(i-1,j,k)->at(fsgrids::egradpe::EYGRADPE);
}

// Hyperresistivity term
if(Parameters::ohmHyperTerm > 0) {
Ey_NW += EHyperGrid.get(i-1,j,k)->at(fsgrids::ehyper::EYHYPER);
}

#ifndef FS_1ST_ORDER_SPACE
// 2nd order terms:
Expand Down Expand Up @@ -1108,6 +1145,11 @@ void calculateEdgeElectricFieldY(
if(Parameters::ohmGradPeTerm > 0) {
Ey_NE += EGradPeGrid.get(i-1,j,k-1)->at(fsgrids::egradpe::EYGRADPE);
}

// Hyperresistivity term
if(Parameters::ohmHyperTerm > 0) {
Ey_NE += EHyperGrid.get(i-1,j,k-1)->at(fsgrids::ehyper::EYHYPER);
}

#ifndef FS_1ST_ORDER_SPACE
// 2nd order terms:
Expand Down Expand Up @@ -1171,6 +1213,7 @@ void calculateEdgeElectricFieldZ(
FsGrid< std::array<Real, fsgrids::efield::N_EFIELD>, FS_STENCIL_WIDTH> & EGrid,
FsGrid< std::array<Real, fsgrids::ehall::N_EHALL>, FS_STENCIL_WIDTH> & EHallGrid,
FsGrid< std::array<Real, fsgrids::egradpe::N_EGRADPE>, FS_STENCIL_WIDTH> & EGradPeGrid,
FsGrid< std::array<Real, fsgrids::ehyper::N_EHYPER>, FS_STENCIL_WIDTH> & EHyperGrid,
FsGrid< std::array<Real, fsgrids::moments::N_MOMENTS>, FS_STENCIL_WIDTH> & momentsGrid,
FsGrid< std::array<Real, fsgrids::dperb::N_DPERB>, FS_STENCIL_WIDTH> & dPerBGrid,
FsGrid< std::array<Real, fsgrids::dmoments::N_DMOMENTS>, FS_STENCIL_WIDTH> & dMomentsGrid,
Expand Down Expand Up @@ -1299,6 +1342,11 @@ void calculateEdgeElectricFieldZ(
if(Parameters::ohmGradPeTerm > 0) {
Ez_SW += EGradPeGrid.get(i,j,k)->at(fsgrids::egradpe::EZGRADPE);
}

// Hyperresistivity term
if(Parameters::ohmHyperTerm > 0) {
Ez_SW += EHyperGrid.get(i,j,k)->at(fsgrids::ehyper::EZHYPER);
}

#ifndef FS_1ST_ORDER_SPACE
// 2nd order terms:
Expand Down Expand Up @@ -1357,6 +1405,11 @@ void calculateEdgeElectricFieldZ(
if(Parameters::ohmGradPeTerm > 0) {
Ez_SE += EGradPeGrid.get(i-1,j,k)->at(fsgrids::egradpe::EZGRADPE);
}

// Hyperresistivity term
if(Parameters::ohmHyperTerm > 0) {
Ez_SW += EHyperGrid.get(i-1,j,k)->at(fsgrids::ehyper::EZHYPER);
}

#ifndef FS_1ST_ORDER_SPACE
// 2nd order terms:
Expand Down Expand Up @@ -1413,6 +1466,11 @@ void calculateEdgeElectricFieldZ(
if(Parameters::ohmGradPeTerm > 0) {
Ez_NW += EGradPeGrid.get(i,j-1,k)->at(fsgrids::egradpe::EZGRADPE);
}

// Hyperresistivity term
if(Parameters::ohmHyperTerm > 0) {
Ez_NW += EHyperGrid.get(i,j-1,k)->at(fsgrids::ehyper::EZHYPER);
}

#ifndef FS_1ST_ORDER_SPACE
// 2nd order terms:
Expand Down Expand Up @@ -1469,6 +1527,11 @@ void calculateEdgeElectricFieldZ(
if(Parameters::ohmGradPeTerm > 0) {
Ez_NE += EGradPeGrid.get(i-1,j-1,k)->at(fsgrids::egradpe::EZGRADPE);
}

// Hyperresistivity term
if(Parameters::ohmHyperTerm > 0) {
Ez_NE += EHyperGrid.get(i-1,j-1,k)->at(fsgrids::ehyper::EZHYPER);
}

#ifndef FS_1ST_ORDER_SPACE
// 2nd order terms:
Expand Down Expand Up @@ -1543,6 +1606,7 @@ void calculateElectricField(
FsGrid< std::array<Real, fsgrids::efield::N_EFIELD>, FS_STENCIL_WIDTH> & EGrid,
FsGrid< std::array<Real, fsgrids::ehall::N_EHALL>, FS_STENCIL_WIDTH> & EHallGrid,
FsGrid< std::array<Real, fsgrids::egradpe::N_EGRADPE>, FS_STENCIL_WIDTH> & EGradPeGrid,
FsGrid< std::array<Real, fsgrids::ehyper::N_EHYPER>, FS_STENCIL_WIDTH> & EHyperGrid,
FsGrid< std::array<Real, fsgrids::moments::N_MOMENTS>, FS_STENCIL_WIDTH> & momentsGrid,
FsGrid< std::array<Real, fsgrids::dperb::N_DPERB>, FS_STENCIL_WIDTH> & dPerBGrid,
FsGrid< std::array<Real, fsgrids::dmoments::N_DMOMENTS>, FS_STENCIL_WIDTH> & dMomentsGrid,
Expand All @@ -1566,6 +1630,7 @@ void calculateElectricField(
EGrid,
EHallGrid,
EGradPeGrid,
EHyperGrid,
momentsGrid,
dPerBGrid,
dMomentsGrid,
Expand All @@ -1586,6 +1651,7 @@ void calculateElectricField(
EGrid,
EHallGrid,
EGradPeGrid,
EHyperGrid,
momentsGrid,
dPerBGrid,
dMomentsGrid,
Expand All @@ -1606,6 +1672,7 @@ void calculateElectricField(
EGrid,
EHallGrid,
EGradPeGrid,
EHyperGrid,
momentsGrid,
dPerBGrid,
dMomentsGrid,
Expand Down Expand Up @@ -1651,6 +1718,8 @@ void calculateUpwindedElectricFieldSimple(
FsGrid< std::array<Real, fsgrids::ehall::N_EHALL>, FS_STENCIL_WIDTH> & EHallGrid,
FsGrid< std::array<Real, fsgrids::egradpe::N_EGRADPE>, FS_STENCIL_WIDTH> & EGradPeGrid,
FsGrid< std::array<Real, fsgrids::egradpe::N_EGRADPE>, FS_STENCIL_WIDTH> & EGradPeDt2Grid,
FsGrid< std::array<Real, fsgrids::ehyper::N_EHYPER>, FS_STENCIL_WIDTH> & EHyperGrid,
FsGrid< std::array<Real, fsgrids::ehyper::N_EHYPER>, FS_STENCIL_WIDTH> & EHyperDt2Grid,
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::dperb::N_DPERB>, FS_STENCIL_WIDTH> & dPerBGrid,
Expand Down Expand Up @@ -1680,7 +1749,14 @@ void calculateUpwindedElectricFieldSimple(
EGradPeDt2Grid.updateGhostCells();
}
}
if(P::ohmHallTerm == 0) {
if(P::ohmHyperTerm > 0) {
if (RKCase == RK_ORDER1 || RKCase == RK_ORDER2_STEP2) {
EHyperGrid.updateGhostCells();
} else {
EHyperDt2Grid.updateGhostCells();
}
}
if(P::ohmHallTerm == 0 && P::ohmHyperTerm == 0) {
dPerBGrid.updateGhostCells();
}
if(P::ohmHallTerm == 0 && P::ohmGradPeTerm == 0 && communicateEGradPeOrMomentsDerivatives) {
Expand All @@ -1707,6 +1783,7 @@ void calculateUpwindedElectricFieldSimple(
EGrid,
EHallGrid,
EGradPeGrid,
EHyperGrid,
momentsGrid,
dPerBGrid,
dMomentsGrid,
Expand All @@ -1724,6 +1801,7 @@ void calculateUpwindedElectricFieldSimple(
EDt2Grid,
EHallGrid,
EGradPeDt2Grid,
EHyperDt2Grid,
momentsDt2Grid,
dPerBGrid,
dMomentsDt2Grid,
Expand Down
2 changes: 2 additions & 0 deletions fieldsolver/ldz_electric_field.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ void calculateUpwindedElectricFieldSimple(
FsGrid< std::array<Real, fsgrids::ehall::N_EHALL>, FS_STENCIL_WIDTH> & EHallGrid,
FsGrid< std::array<Real, fsgrids::egradpe::N_EGRADPE>, FS_STENCIL_WIDTH> & EGradPeGrid,
FsGrid< std::array<Real, fsgrids::egradpe::N_EGRADPE>, FS_STENCIL_WIDTH> & EGradPeDt2Grid,
FsGrid< std::array<Real, fsgrids::ehyper::N_EHYPER>, FS_STENCIL_WIDTH> & EHyperGrid,
FsGrid< std::array<Real, fsgrids::ehyper::N_EHYPER>, FS_STENCIL_WIDTH> & EHyperDt2Grid,
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::dperb::N_DPERB>, FS_STENCIL_WIDTH> & dPerBGrid,
Expand Down
Loading
Loading