|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectspis.Top.Plasma.Plasma
spis.Top.Plasma.MeshedPlasma
spis.Top.Plasma.MmfPlasma
Class Name : MmfPlasma (Meshed Matter-Fields Plasma class)
Project ref : SPIS project
File name : MmfPlasma.java
File type : class
Copyright : ONERA, 2 Av. E. Belin, 31055 Toulouse cedex, France
http://www.onecert.fr
Status : under development
Creation : 25/08/2003
Modification :
Description : Meshed Matter-Fields Plasma class.
plasma model in which the matter and the field dynamics are described with
a "separate" dynamics (contrarily e.g. to MHD).
Although abstract, most of the job is done in this class (integrate...).
The derived classes are mostly used to build/initialise the plasma and
their dynamics will be handled by this class.
For that, two opposite options to build the fields and matter in derived classes are:
A) a very specicifc plasma model is defined
with pre-determined matter distribution types, possibly with pre-determined
solving scheme, e.g. with a non linear Poisson solver (electron Boltzman
distribution "included" in Poisson equation with implicit solving method),
or quasi-neutral model, etc.
An exemple of this strategy is Hybrid1MmfPlasma.
B) the class is made very flexible thanks to methods like:
- addDistribution (matter) including type/details description
- addField, above all the type of storage
- selectSolver...
This strategy is exemplified by FlexibleMFPlasmaDeprecated
Versions and anomalies correction :
Version number | Author (name, e-mail) | Corrections/Modifications |
0.1 | JF Roussel, roussel@onecert.fr | Creation |
Field Summary | |
protected VectVolField |
B
Magnetic field (field only) |
protected SurfDistrib[] |
bdOutFlux
Outgoing fluxes to external boundary generated by the plasma dynamics. |
protected ScalVolField |
densBuf
density buffer |
protected EField |
E
Electric field (the field and its solver |
protected VolDistrib[] |
pop
particle populations, TBD derived types |
protected int |
popNb
number of (used) populations |
private static int |
popNbIncr
increment of population number when resized |
protected SurfDistrib[] |
scOutFlux
Outgoing fluxes onto the SC generated by the plasma dynamics. |
protected ScalVolField |
totDens
total density |
Fields inherited from class spis.Top.Plasma.MeshedPlasma |
vm |
Constructor Summary | |
MmfPlasma(ThreeDUnstructVolMesh volMesh)
Constructor without E and B fields => they are generated automatically (EField E includes the solver), and as a consequence, the volMesh must be of ThreeDUnstructVolMesh type because a Poisson solver on a ConjGrad3DUnstructPoissonSolver is used. |
|
MmfPlasma(VolMesh volMesh,
EField electricField,
VectVolField magneticField)
Default constructor |
Method Summary | |
void |
addPop(VolDistrib newPop)
adds a new particle population to the plasma |
void |
addPops(VolDistrib[] newPops)
adds a new particle populations to the plasma |
float |
assessLargestDt()
|
protected void |
buildDefaultFields(ThreeDUnstructVolMesh volMesh)
Builds and returns an electric field as an EField object: the field stored as a potential and a ConjGrad3DUnstructPoissonSolver for Poisson eq. |
ScalVolField |
buildElectronDensity()
Builds a ScalVolField giving the total electron density and returns it. |
ScalVolField |
buildIonDensity()
Builds a ScalVolField giving the total ion density and returns it. |
void |
buildMostAccurateScOutFluxes()
Builds the most accurate outgoing flux onto spacecraft for all populations of this plasma. |
ScalVolField |
buildTotalDensity()
Builds a ScalVolField giving the total plasma density [ecu/node] and returns it. |
void |
collectOutFluxes()
|
void |
computeTotalChargeDensity(int flag)
Computes the total current of the populations of the plasma and stores it in totDens. |
VectVolField |
getB()
returns volume B field. |
VolDistrib |
getDistrib(int n)
returns population n. |
int |
getDistribNb()
returns population number. |
VolDistrib[] |
getDistribs()
|
VectVolField |
getE()
returns electric field as a vector volume field (elecectric field only, i.e. values only). |
EField |
getEField()
returns E as an EField object, i.e. the field + the solver. |
private void |
init()
Initisations: populations, buffers... |
SurfDistrib[] |
integrate(float dt,
ScalSurfField scPot,
SurfDistrib[] inFlux)
Integrates the plasma dynamics over the (small) time dt. |
void |
setB(VectVolField BField)
Defines B field (by refrence, no copy) |
void |
setEField(EField EField)
Defines E field (by reference, no copy) |
Methods inherited from class spis.Top.Plasma.MeshedPlasma |
getVm |
Methods inherited from class spis.Top.Plasma.Plasma |
integrate |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected EField E
protected VectVolField B
protected VolDistrib[] pop
protected int popNb
protected ScalVolField totDens
protected ScalVolField densBuf
protected SurfDistrib[] scOutFlux
protected SurfDistrib[] bdOutFlux
private static int popNbIncr
Constructor Detail |
public MmfPlasma(VolMesh volMesh, EField electricField, VectVolField magneticField)
volMesh
- electricField
- magneticField
- public MmfPlasma(ThreeDUnstructVolMesh volMesh)
volMesh
- Method Detail |
private void init()
protected void buildDefaultFields(ThreeDUnstructVolMesh volMesh)
public SurfDistrib[] integrate(float dt, ScalSurfField scPot, SurfDistrib[] inFlux)
integrate
in class Plasma
dt
- integration durationscPot
- spacecraft potentialinFlux
- incoming plasma fluxes (sources, secondary particles...
Plasma#integrate(float, ScalSurfField)
public float assessLargestDt()
assessLargestDt
in class Plasma
public void computeTotalChargeDensity(int flag)
flag
- VolDistrib.isDensityImplicit()
public void collectOutFluxes()
public void addPop(VolDistrib newPop)
newPop
- the population to be addedpublic void addPops(VolDistrib[] newPops)
newPops
- the populations to be added, the null ones are discardedpublic void buildMostAccurateScOutFluxes()
public void setEField(EField EField)
public void setB(VectVolField BField)
public EField getEField()
public VectVolField getE()
public VectVolField getB()
public int getDistribNb()
public VolDistrib getDistrib(int n)
public ScalVolField buildTotalDensity()
buildTotalDensity
in class MeshedPlasma
public ScalVolField buildIonDensity()
buildIonDensity
in class MeshedPlasma
public ScalVolField buildElectronDensity()
buildElectronDensity
in class MeshedPlasma
public VolDistrib[] getDistribs()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |