Vlasiator ebf0dd394 on dev (v5.4.0 + 1054 commits)
Loading...
Searching...
No Matches
fieldtracing.h File Reference
#include <cstdlib>
#include <array>
#include "../common.h"
#include "../fieldsolver/fs_common.h"
#include "../fieldsolver/derivatives.hpp"
#include "../sysboundary/ionosphere.h"
#include "../logger.h"
Include dependency graph for fieldtracing.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  FieldTracing::FieldTracingParameters

Namespaces

namespace  FieldTracing

Typedefs

typedef float TReal
template<typename REAL>
using FieldTracing::TracingFieldFunction = std::function<bool(std::array<REAL, 3>&, const bool, std::array<REAL, 3>&)>

Enumerations

enum  FieldTracing::Direction { FieldTracing::FORWARD , FieldTracing::BACKWARD }
enum  FieldTracing::TracingMethod { FieldTracing::Euler , FieldTracing::ADPT_Euler , FieldTracing::BS , FieldTracing::DPrince }
enum  FieldTracing::TracingLineEndType {
  FieldTracing::UNPROCESSED , FieldTracing::CLOSED , FieldTracing::OPEN , FieldTracing::DANGLING ,
  FieldTracing::OUTSIDE , FieldTracing::N_TYPES
}
enum  FieldTracing::TracingPointConnectionType {
  FieldTracing::CLOSED_CLOSED , FieldTracing::CLOSED_OPEN , FieldTracing::OPEN_CLOSED , FieldTracing::OPEN_OPEN ,
  FieldTracing::CLOSED_DANGLING , FieldTracing::DANGLING_CLOSED , FieldTracing::OPEN_DANGLING , FieldTracing::DANGLING_OPEN ,
  FieldTracing::DANGLING_DANGLING , FieldTracing::INVALID
}

Functions

template<class T>
std::array< fsgrid::FsSize_t, 3 > getGlobalFsGridCellIndexForCoord (T &grid, const std::array< Real, 3 > &x)
template<class T>
std::array< fsgrid::FsIndex_t, 3 > getLocalFsGridCellIndexForCoord (T &grid, const std::array< Real, 3 > &x)
template<class T>
std::array< fsgrid::FsIndex_t, 3 > getLocalFsGridCellIndexWithGhostsForCoord (T &grid, const std::array< Real, 3 > &x)
template<class T>
std::array< Real, 3 > getFractionalFsGridCellForCoord (T &grid, const std::array< Real, 3 > &x)
int FieldTracing::ijk2Index (int i, int j, int k, std::array< int, 3 > dims)
template<typename REAL>
bool FieldTracing::traceFullFieldFunction (fsgrids::perbspan perb, fsgrids::constdperbspan dperb, fsgrids::technicalspan technical, FieldSolverGrid &fsgrid, std::array< REAL, 3 > &r, const bool alongB, std::array< REAL, 3 > &b)
template<typename REAL>
void FieldTracing::modifiedMidpointMethod (std::array< REAL, 3 > r, std::array< REAL, 3 > &r1, int n, REAL stepSize, TracingFieldFunction< REAL > &BFieldFunction, const bool outwards=true)
template<typename REAL>
void FieldTracing::richardsonExtrapolation (int i, std::vector< REAL > &table, REAL &maxError, std::array< int, 3 > dims)
template<typename REAL>
bool FieldTracing::bulirschStoerStep (std::array< REAL, 3 > &r, std::array< REAL, 3 > &b, REAL &stepSize, const REAL minStepSize, const REAL maxStepSize, TracingFieldFunction< REAL > &BFieldFunction, const bool outwards=true)
template<typename REAL>
bool FieldTracing::dormandPrinceStep (std::array< REAL, 3 > &r, std::array< REAL, 3 > &b, REAL &stepSize, const REAL minStepSize, const REAL maxStepSize, TracingFieldFunction< REAL > &BFieldFunction, const bool outwards=true)
template<typename REAL>
bool FieldTracing::adaptiveEulerStep (std::array< REAL, 3 > &r, std::array< REAL, 3 > &b, REAL &stepSize, const REAL minStepSize, const REAL maxStepSize, TracingFieldFunction< REAL > &BFieldFunction, const bool outwards=true)
template<typename REAL>
void FieldTracing::eulerStep (std::array< REAL, 3 > &x, std::array< REAL, 3 > &v, REAL &stepSize, TracingFieldFunction< REAL > &BFieldFunction, const bool outwards=true)
template<typename REAL>
void FieldTracing::stepFieldLine (std::array< REAL, 3 > &x, std::array< REAL, 3 > &v, REAL &stepsize, const REAL minStepSize, const REAL maxStepSize, TracingMethod method, TracingFieldFunction< REAL > &BFieldFunction, const bool outwards)
void FieldTracing::resetReconstructionCoefficientsCache ()
void FieldTracing::calculateIonosphereFsgridCoupling (fsgrids::technicalspan technical, FieldSolverGrid &fsgrid, fsgrids::perbspan perb, fsgrids::constdperbspan dperb, std::vector< SBC::SphericalTriGrid::Node > &nodes, creal couplingRadius)
std::array< std::pair< int, Real >, 3 > FieldTracing::calculateIonosphereVlasovGridCoupling (std::array< Real, 3 > x, std::vector< SBC::SphericalTriGrid::Node > &nodes, creal couplingRadius)
void FieldTracing::traceOpenClosedConnection (fsgrids::technicalspan technical, FieldSolverGrid &fsgrid, fsgrids::perbspan perb, fsgrids::constdperbspan dperb, std::vector< SBC::SphericalTriGrid::Node > &nodes)
void FieldTracing::traceFullBoxConnectionAndFluxRopes (fsgrids::technicalspan technical, FieldSolverGrid &fsgrid, fsgrids::perbspan perb, fsgrids::constdperbspan dperb, dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid)
void FieldTracing::reduceData (fsgrids::technicalspan technical, FieldSolverGrid &fsgrid, fsgrids::perbspan perb, fsgrids::constdperbspan dperb, dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, std::vector< SBC::SphericalTriGrid::Node > &nodes)

Variables

Logger logFile

Typedef Documentation

◆ TReal

typedef float TReal

Definition at line 36 of file fieldtracing.h.

Function Documentation

◆ getFractionalFsGridCellForCoord()

template<class T>
std::array< Real, 3 > getFractionalFsGridCellForCoord ( T & grid,
const std::array< Real, 3 > & x )

Definition at line 65 of file fieldtracing.h.

Here is the caller graph for this function:

◆ getGlobalFsGridCellIndexForCoord()

template<class T>
std::array< fsgrid::FsSize_t, 3 > getGlobalFsGridCellIndexForCoord ( T & grid,
const std::array< Real, 3 > & x )

Definition at line 41 of file fieldtracing.h.

Here is the caller graph for this function:

◆ getLocalFsGridCellIndexForCoord()

template<class T>
std::array< fsgrid::FsIndex_t, 3 > getLocalFsGridCellIndexForCoord ( T & grid,
const std::array< Real, 3 > & x )

Definition at line 47 of file fieldtracing.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getLocalFsGridCellIndexWithGhostsForCoord()

template<class T>
std::array< fsgrid::FsIndex_t, 3 > getLocalFsGridCellIndexWithGhostsForCoord ( T & grid,
const std::array< Real, 3 > & x )

Definition at line 55 of file fieldtracing.h.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ logFile

Logger logFile
extern

Definition at line 25 of file main.cpp.