spis.Surf.SurfDistrib
Class MultipleSurfDistrib

java.lang.Object
  extended byspis.Surf.SurfDistrib.SurfDistrib
      extended byspis.Surf.SurfDistrib.MultipleSurfDistrib

public class MultipleSurfDistrib
extends SurfDistrib

Class Name : MultipleSurfDistrib
Project ref : SPIS project
File name : MultipleSurfDistrib.java
File type : class
Copyright : ONERA, 2 Av. E. Belin, 31055 Toulouse cedex, France http://www.onecert.fr
Status : under development
Creation : 6 march 2004
Modification :

Description : A surface distribution constituted of several other.
Should above all be used for multiple Maxwellian distributions
(most distributions are suitably described as a sum of Maxwellians)

Versions and anomalies correction :

Version numberAuthor (name, e-mail) Corrections/Modifications
0.1 JF Roussel, roussel@onecert.frCreation


Version:
0.1
Author:
JF Roussel

Constructor Summary
MultipleSurfDistrib(SurfMesh surfMesh, SurfDistrib[] surfDistributions)
          Default constructor
 
Method Summary
 float assesMinTimeToCrossOneCell()
          Assesses the minimum time to cross one cell when particles are injected from this surface distribution into volume.
 void getMoment(SurfField mom, int order, int charge, int mass, int time)
          normalised and deviation flags omitted: they are set to their default value, 0
 void getMoment(SurfField mom, int order, int charge, int mass, int time, int normalised)
          Deviation flag omitted: it is set to its default value, 0.
 void getMoment(SurfField mom, int order, int charge, int mass, int time, int normalised, int deviation)
          When normalisation is requested, the generic SurfDistrib.getMoment routine must be overriden so that the normalisation is done for the whole set of distributions, not distribution per distribution.
 PartList getSample(float dt)
          Returns a sample of the surface distribution (a flux indeed) integrated over the time dt.
 SurfDistrib[] getSurfDistribs()
           
 void map(SurfDistrib sd)
          Mapping onto a MultipleSurDistrib is not supported, mapping is only possible to more specified SurfDistrib sub-types (PICSurfDistrib, FluidSurfDistrib...).
 void sample(PartList pl, float dt)
          Computes a sample of the surface distribution (a flux indeed) integrated over the time dt.
 void setSurfDistribs(SurfDistrib[] distribs)
           
 
Methods inherited from class spis.Surf.SurfDistrib.SurfDistrib
getFrom, getMoment, getMoment, getMoment, getSm, getTo, setFrom, setTo
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MultipleSurfDistrib

public MultipleSurfDistrib(SurfMesh surfMesh,
                           SurfDistrib[] surfDistributions)
Default constructor

Parameters:
surfMesh - surface mesh
surfDistributions - surface ditributions to "add"
Method Detail

getMoment

public void getMoment(SurfField mom,
                      int order,
                      int charge,
                      int mass,
                      int time)
Description copied from class: SurfDistrib
normalised and deviation flags omitted: they are set to their default value, 0

Specified by:
getMoment in class SurfDistrib
Parameters:
mom -
order -
charge -
mass -
time -
See Also:
SurfDistrib.getMoment(spis.Surf.SurfField.SurfField, int, int, int, int)

getMoment

public void getMoment(SurfField mom,
                      int order,
                      int charge,
                      int mass,
                      int time,
                      int normalised,
                      int deviation)
When normalisation is requested, the generic SurfDistrib.getMoment routine must be overriden so that the normalisation is done for the whole set of distributions, not distribution per distribution.

Overrides:
getMoment in class SurfDistrib
Parameters:
mom -
order -
charge -
mass -
time -
normalised -
deviation -
See Also:
SurfDistrib.getMoment(spis.Surf.SurfField.SurfField, int, int, int, int, int, int)

getMoment

public void getMoment(SurfField mom,
                      int order,
                      int charge,
                      int mass,
                      int time,
                      int normalised)
Deviation flag omitted: it is set to its default value, 0. When normalisation is requested, the generic SurfDistrib.getMoment routine must be overriden so that the normalisation is done for the whole set of distributions, not distribution per distribution.

Overrides:
getMoment in class SurfDistrib
Parameters:
mom -
order -
charge -
mass -
time -
normalised -
See Also:
SurfDistrib.getMoment(SurfField, int, int, int, int, int, int)

sample

public void sample(PartList pl,
                   float dt)
Description copied from class: SurfDistrib
Computes a sample of the surface distribution (a flux indeed) integrated over the time dt.
Depending on the class specialisation the sample is either obtained directly (or by extraction of a part of a particle list) or by an actual sampling of a distribution described by its moments.
In some versions, parameters may be need to control the sampling.
The subtype of the generated list is fixed by the passed variable pl, contrarily to the getSample method, which returns a Partlist (or dynamically a RichPartList...).

Specified by:
sample in class SurfDistrib
See Also:
SurfDistrib.sample(spis.Util.List.PartList, float)

getSample

public PartList getSample(float dt)
Description copied from class: SurfDistrib
Returns a sample of the surface distribution (a flux indeed) integrated over the time dt.
For a PIC distribution, it is direct, or at maximum an extraction of a fraction of pl (dt/time), although a re-sampling may be needed.
The subtype of the returned generated list is free here, contrarily to the sample method, where it is fixed by the passed variable pl.

Specified by:
getSample in class SurfDistrib
See Also:
SurfDistrib.getSample(float)

map

public void map(SurfDistrib sd)
Mapping onto a MultipleSurDistrib is not supported, mapping is only possible to more specified SurfDistrib sub-types (PICSurfDistrib, FluidSurfDistrib...). This methods throws a SpisRuntimeException.

Specified by:
map in class SurfDistrib
See Also:
SurfDistrib.map(spis.Surf.SurfDistrib.SurfDistrib)

assesMinTimeToCrossOneCell

public float assesMinTimeToCrossOneCell()
Assesses the minimum time to cross one cell when particles are injected from this surface distribution into volume.

Specified by:
assesMinTimeToCrossOneCell in class SurfDistrib
Returns:
the minimum time to cross one cell
See Also:
SurfDistrib.assesMinTimeToCrossOneCell()

getSurfDistribs

public SurfDistrib[] getSurfDistribs()
Returns:

setSurfDistribs

public void setSurfDistribs(SurfDistrib[] distribs)
Parameters:
distribs -