|
|||||||||||
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 |
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, getInFlux, getInteractModel, getOutFlux, getParams, setInFlux, setInteractModel, setOutFlux, setParams |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
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 |