spis.Surf.InteractModel
Class Interactor

java.lang.Object
  extended byspis.Surf.InteractModel.Interactor
Direct Known Subclasses:
BasicInducedConductInteractor, MaxwellianInteractor, MultipleInteractor, MultipleMaxwellianInteractor, PICInteractor, ReflectionInteractor, Source

public abstract class Interactor
extends java.lang.Object

Class Name : Interactor (generic Interactor)
Project ref : SPIS project
File name : Interactor.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 : general Interactor class.
An interactor actually performs (computes) the interaction.
It deals with the incoming/outgoing surface distributions (fluxes), which can basically be sampled (PIC disctrubtions) or fluid (moments). It does not need to implement all versions, but it has to say what is implemented.
The general rule is to generate an outgoing flux of the subtype of the object passed as outgoing flux (e.g. a sampled distribution if "fluxOut" is of type PICSurfDIstrib) since this is (or should be) the subtype requested by the solver that will later propagate these particles.
However, in some cases the subtype of the outgoing flux can be modified (i.e. enforced by the Interactor), as e.g. if the emitted flux is a Maxwellien, why not keep it a fluid distribution, and the sampling will be done "later" (this aspect still under work)
For now only the global fluxIn to fluxOut computation can be provided by interactors, i.e. take a flux defined all over the surface mesh to also produce a global distribution as output. It is however envisaged to also have an Interactor handle local fluxes, i.e. over one elementary surface only. It would simplify the task of the Interactor, but makes the Interactor calls more complex (under reflexion).

Versions and anomalies correction :

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


Version:
0.1
Author:
JF Roussel

Field Summary
protected  SurfDistrib inFlux
          incoming flux
private  InteractModel interactModel
          Pointer to the interaction model this interactor comes from
protected  SurfDistrib outFlux
          outgoing flux (result of the iteraction)
protected  ParameterSet[] params
          Parameters of this interactor
 
Constructor Summary
Interactor(SurfDistrib inFlux_, SurfDistrib outFlux_, InteractModel interactModel_, ParameterSet[] parameters)
          Default constructor.
 
Method Summary
abstract  void computeInteraction()
          Computes the interaction, not computing the net current in this version
 void computeInteraction(ScalSurfField netCur)
          Computes the interaction from the incoming flux to the outgoing flux (through Interactor internal pointer inFlux & outFlux to these fluxes), computing also the net current (collected: + in - out)
protected  void computeMultipleInteraction()
          Compute interaction in case of multiple inFlux and outFlux.
 SurfDistrib getInFlux()
           
 InteractModel getInteractModel()
           
 SurfDistrib getOutFlux()
           
 ParameterSet[] getParams()
           
 void setInFlux(SurfDistrib distrib)
           
 void setInteractModel(InteractModel interactModel_)
           
 void setOutFlux(SurfDistrib distrib)
           
 void setParams(ParameterSet[] sets)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

inFlux

protected SurfDistrib inFlux
incoming flux


outFlux

protected SurfDistrib outFlux
outgoing flux (result of the iteraction)


params

protected ParameterSet[] params
Parameters of this interactor


interactModel

private InteractModel interactModel
Pointer to the interaction model this interactor comes from

Constructor Detail

Interactor

public Interactor(SurfDistrib inFlux_,
                  SurfDistrib outFlux_,
                  InteractModel interactModel_,
                  ParameterSet[] parameters)
Default constructor.
The reference to the interaction model in which this Interactor is used is needed because the material Id (or interaction instance Id) are specific to the interactionModel

Method Detail

computeInteraction

public void computeInteraction(ScalSurfField netCur)
Computes the interaction from the incoming flux to the outgoing flux (through Interactor internal pointer inFlux & outFlux to these fluxes), computing also the net current (collected: + in - out)

Parameters:
netCur - net current (output)

computeInteraction

public abstract void computeInteraction()
Computes the interaction, not computing the net current in this version


computeMultipleInteraction

protected void computeMultipleInteraction()
Compute interaction in case of multiple inFlux and outFlux.
It basically calls derived classes computeInteraction() methods for each of the fluxes of the inFlux and outFlux, which must correspond one to one (inFlux 0 => outFlux 0, etc.).
It must be invoked by the computeInteraction() methods of derived classes when they detect such I/O fluxes (unless some of them have MultipleSurfDistrib as Influx...)


getInteractModel

public InteractModel getInteractModel()
Returns:
pointer to the interaction model this interactor comes from

getParams

public ParameterSet[] getParams()
Returns:
parameters of this interactor

setInteractModel

public void setInteractModel(InteractModel interactModel_)
Parameters:
interactModel_ - pointer to the interaction model this interactor comes from

setParams

public void setParams(ParameterSet[] sets)
Parameters:
sets - parameters of this interactor

getInFlux

public SurfDistrib getInFlux()
Returns:

getOutFlux

public SurfDistrib getOutFlux()
Returns:

setInFlux

public void setInFlux(SurfDistrib distrib)
Parameters:
distrib -

setOutFlux

public void setOutFlux(SurfDistrib distrib)
Parameters:
distrib -