|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectspis.Surf.InteractModel.Interactor
spis.Surf.InteractModel.ReflectionInteractor
Class Name : ReflectionInteractor
Project ref : SPIS project
File name : ReflectionInteractor.java
File type : class
Copyright : ONERA, 2 Av. E. Belin, 31055 Toulouse cedex, France
http://www.onecert.fr
Status : under development
Creation : Apr 23, 2004
Modification :
Description : a reflection interactor, as a result of an interaction,
returns a distribution relfected of the input distribution.
In the reflection process, the distribution can yet be modified:
attenuated in number or energy, diffused...
In each ParameterSet (one set per material in ParameterSet[] parameters),
which must be of type ParameterSet, parameters are:
0: factor of attenuation of the flux (1.0 => unchanged, 0.0 => no more flux)
1: method of flux attenuation:
method=0 => the weight of all particles is reduced by a number attenuation
factor (parameter 0 above),
method=1 => particles are unchanged but only kept with probability = this factor
2: factor of energy attenuation (1.0 => unchanged, 0.0 => particles are
re-emitted at reference energy, next parameter)
3: reference energy [eV]: average energy of particles fully accommodated
(may be a surface temperature, etc.)
4: method of energy attenuation:
method=0 => the energy of all particles is reduced by an energy attenuation
factor (parameter 2 above),
method=1 => each particle energy is reduced by a random factor x of probability
law P(x)= x^n (n+1), n being determined to give an average attenuation
factor equal to he above parameter 2 (n = (2f-1)/(1-f))
5: diffusion coefficient (0.0 => no diffusion, 1.0 => complete angle diffusion)
6: method of diffusion simulation:
method=0 => a fraction of the particles is diffusively reflected, while the
others are specularly reflected (this fraction is the above parameter 5)
method=1 => the peak of velocity is broadened around the specular direction:
the result is a linear combination of a normalised vector of sampled
following a Lambertian probability and the normalised specular direction,
which is next normalised following the energy attenuation law above.
NB: in case of NonPICSurfDistrib (fluid), only parameters 0 and 2 are
effective.
NB: a second constructor allows to use a factor of attenuation of the flux
depending on particle kinematics (energy/angle...). If needed, this could be extended
to other parameters, which would then all be replaced by FuntionOfParticles.
Versions and anomalies correction :
Version number | Author (name, e-mail) | Corrections/Modifications |
0.1 | JF Roussel, roussel@onecert.fr | Creation |
Field Summary | |
private FunctionOfParticleNothing |
diffusion
function computing diffusion coefficient |
private FunctionOfParticleNothing |
diffusionMethod
function returning the diffusion method |
private FunctionOfParticleNothing |
energyDamping
function computing energy accommodation |
private FunctionOfParticleNothing |
energyDampingMethod
function returning the energy accommodation method Id |
private ScalSurfField |
matId
Material Id field |
private ScalSurfField |
matModId
Material model Id field |
private FunctionOfParticle |
numberDamping
function computing particle number attenuation |
private FunctionOfParticleNothing |
numberDampingMethod
function returning the number attenuation method |
private FunctionOfParticleNothing |
referenceEnergy
function returning the reference energy for accommodation |
private int |
refMatModId
reference material model: the one for which reflections have to be computed (-1 => any of them) |
private int |
refParticleId
reference particle Id: the one for which reflections have to be computed (-1 => any of them) |
private PartTable |
refPartTable
reference particle table, i.e. the one to which refParticleId refers to |
private ScalSurfField |
ssf
buffer ScalSurfField |
private VectSurfField |
surfNormal
normal to the impacted surfaces |
Fields inherited from class spis.Surf.InteractModel.Interactor |
inFlux, outFlux, params |
Constructor Summary | |
ReflectionInteractor(SurfDistrib inFlux,
SurfDistrib outFlux,
InteractModel interactModel,
ParameterSet[] parameters,
ScalSurfField matModId_,
ScalSurfField matId_,
int refMatModId_,
int refParticleId_,
PartTable refPartTable_)
Default constructor |
|
ReflectionInteractor(SurfDistrib inFlux,
SurfDistrib outFlux,
InteractModel interactModel,
ParameterSet[] parameters,
ScalSurfField matModId_,
ScalSurfField matId_,
int refMatModId_,
int refParticleId_,
PartTable refPartTable_,
FunctionOfParticle numberDamping_)
Constructor with the particle number attenuation depending on particle kinematic parameters: it is passed as an extra function, numberDamping (the parameter 0, the number attenuation parameter not depending on particle kinematics, is unused). |
Method Summary | |
SurfDistrib |
buildOutFlux(SurfDistrib in,
SurfDistrib out)
If out flux is a null pointer, builds it from in Flux (called at object construction if inFlux is not null, and may be called "manually" if inFlux is defined later). |
void |
checkFluxes(SurfDistrib in,
SurfDistrib out)
Checks consistency of in and out fluxes (called at object construction if fluxes not null, and at computeInteraction() time in any case). |
void |
computeInteraction()
Computes the interaction, not computing the net current in this version |
void |
initAndCheck()
initialisations and consistency checks (in particular between fluxes) |
Methods inherited from class spis.Surf.InteractModel.Interactor |
computeInteraction, computeMultipleInteraction, getInFlux, getInteractModel, getOutFlux, getParams, setInFlux, setInteractModel, setOutFlux, setParams |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
private ScalSurfField matModId
private ScalSurfField matId
private int refMatModId
private int refParticleId
private PartTable refPartTable
private FunctionOfParticle numberDamping
private FunctionOfParticleNothing numberDampingMethod
private FunctionOfParticleNothing energyDamping
private FunctionOfParticleNothing referenceEnergy
private FunctionOfParticleNothing energyDampingMethod
private FunctionOfParticleNothing diffusion
private FunctionOfParticleNothing diffusionMethod
private VectSurfField surfNormal
private ScalSurfField ssf
Constructor Detail |
public ReflectionInteractor(SurfDistrib inFlux, SurfDistrib outFlux, InteractModel interactModel, ParameterSet[] parameters, ScalSurfField matModId_, ScalSurfField matId_, int refMatModId_, int refParticleId_, PartTable refPartTable_)
inFlux
- incoming flux (input)outFlux
- outgoing flux (output)interactModel
- interaction model this interactor comes fromparameters
- (see this class comments for their meaning)matModId_
- field with model Id for each surface elementmatId_
- field with material Id (within model numbering) for each surface elementrefParticleId_
- id of the particles to be handled (all if Id = -1)refPartTable_
- particle table in which to which refParticleId_ refers toReflectionInteractor
,
ReflectionInteractor#checkFluxes()
public ReflectionInteractor(SurfDistrib inFlux, SurfDistrib outFlux, InteractModel interactModel, ParameterSet[] parameters, ScalSurfField matModId_, ScalSurfField matId_, int refMatModId_, int refParticleId_, PartTable refPartTable_, FunctionOfParticle numberDamping_)
inFlux
- incoming flux (input)outFlux
- outgoing flux (output)interactModel
- interaction model this interactor comes fromparameters
- (see this class comments for their meaning)matModId_
- field with model Id for each surface elementmatId_
- field with material Id (within model numbering) for each surface elementrefParticleId_
- id of the particles to be handled (all if Id = -1)refPartTable_
- particle table in which to which refParticleId_ refers tonumberDamping_
- function returning the number attenuation coefficientReflectionInteractor
,
ReflectionInteractor#checkFluxes()
Method Detail |
public void initAndCheck()
public SurfDistrib buildOutFlux(SurfDistrib in, SurfDistrib out)
public void checkFluxes(SurfDistrib in, SurfDistrib out)
public void computeInteraction()
Interactor
computeInteraction
in class Interactor
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |