Vlasiator ebf0dd394 on dev (v5.4.0 + 1054 commits)
Loading...
Searching...
No Matches
LossCone.h
Go to the documentation of this file.
1/*
2 * This file is part of Vlasiator.
3 * Copyright 2010-2016 Finnish Meteorological Institute
4 * 2017-2025 University of Helsinki
5 *
6 * For details of usage, see the COPYING file and read the "Rules of the Road"
7 * at http://www.physics.helsinki.fi/vlasiator/
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License along
20 * with this program; if not, write to the Free Software Foundation, Inc.,
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 */
23
24#ifndef LOSSCONE_H
25#define LOSSCONE_H
26
27#include <stdlib.h>
28
29#include "../../definitions.h"
31
32namespace projects {
33
44
45 class LossCone: public TriAxisSearch {
46 public:
47 LossCone();
48 virtual ~LossCone();
49
50 virtual bool initialize(void) override;
51 static void addParameters(void);
52 virtual void getParameters(void) override;
53 virtual void setProjectBField(
57 ) override;
58 virtual std::vector<std::array<Real, 3> > getV0(
59 creal x,
60 creal y,
61 creal z,
62 const uint popID
63 ) const override;
64
66 const uint popID,
67 const uint nRequested) const override;
69 const uint popID,
70 Real vx_in, Real vy_in, Real vz_in) const override;
71 virtual void calcCellParameters(spatial_cell::SpatialCell* cell,creal& t) override;
72
79 uint seed;
80 std::vector<LossConeSpeciesParameters> speciesParams;
81
82 static Real rndRho, rndVel[3];
83 #pragma omp threadprivate(rndRho,rndVel)
84 } ; // class LossCone
85} // namespace projects
86#endif
virtual ~LossCone()
Definition LossCone.cpp:44
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 distri...
Definition LossCone.cpp:265
static Real rndRho
Definition LossCone.h:82
virtual bool initialize(void) override
Definition LossCone.cpp:45
virtual void calcCellParameters(spatial_cell::SpatialCell *cell, creal &t) override
Definition LossCone.cpp:201
virtual Realf probePhaseSpace(spatial_cell::SpatialCell *cell, const uint popID, Real vx_in, Real vy_in, Real vz_in) const override
Definition LossCone.cpp:173
virtual Realf fillPhaseSpace(spatial_cell::SpatialCell *cell, const uint popID, const uint nRequested) const override
Definition LossCone.cpp:102
std::vector< LossConeSpeciesParameters > speciesParams
Definition LossCone.h:80
static void addParameters(void)
Definition LossCone.cpp:47
static Real rndVel[3]
Definition LossCone.h:82
virtual void setProjectBField(fsgrids::perbspan perb, fsgrids::bgbspan bgb, fsgrids::technicalspan technical, FieldSolverGrid &fsgrid) override
Definition LossCone.cpp:224
virtual void getParameters(void) override
Definition LossCone.cpp:73
float Real
Definition definitions.h:41
float Realf
Definition definitions.h:33
fsgrid::FsGrid< FS_STENCIL_WIDTH > FieldSolverGrid
Definition definitions.h:78
const float creal
Definition definitions.h:42
std::span< std::array< Real, fsgrids::bfield::N_BFIELD > > perbspan
Definition common.h:434
std::span< technical > technicalspan
Definition common.h:452
std::span< std::array< Real, bgbfield::N_BGB > > bgbspan
Definition common.h:444