spis.Util.Func
Class LimitedExp

java.lang.Object
  extended byspis.Util.Func.LimitedExp
All Implemented Interfaces:
ScalFunctionOfScal

public class LimitedExp
extends java.lang.Object
implements ScalFunctionOfScal

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

Description : Exponential function, limited by a power law function for large argument:
- returns y0 * exp((x-x1)/x0) for (x-x1)/x0 < 0
- returns y0 * (1 + (x-x1)/(x0*exponent))^exponent for (x-x1)/x0 > 0
Its derivative is thus continuous (at x=x1 in particular).
It is mostly used with exponent=1 to give the collected current from a Maxwellian distribution: it is exact for negative (x-x1)/x0=(pot-potRef)/temp, but only an upper boundary for positive (x-x1)/x0 (exact if all trajectories are filled in OML regime)

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
private  float exponent
          exponent for limited part
private  float x0
          Normalisation constant of argument
private  float x1
          Origin of argument
private  float y0
          Normalisation constant of result
 
Constructor Summary
LimitedExp(float y0_, float x0_, float x1_, float exponent_)
          Constructor with y0, x0, x1 and exponent constants to define f(x) = y0*exp((x-x1)/x0) for negative exponential argument and f(x) = y0 * (1 + (x-x1)/(x0*exponent))^exponent for (x-x1)/x0 > 0.
 
Method Summary
 void apply(float[] x, int n)
           
 float compute(float x)
          applies this function to x and returns the result
 void compute(float[] x, int n, float[] y)
          applies this limited exponential to the array x (0 to n-1 elements) and assigns the result to y
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

y0

private float y0
Normalisation constant of result


x0

private float x0
Normalisation constant of argument


x1

private float x1
Origin of argument


exponent

private float exponent
exponent for limited part

Constructor Detail

LimitedExp

public LimitedExp(float y0_,
                  float x0_,
                  float x1_,
                  float exponent_)
Constructor with y0, x0, x1 and exponent constants to define f(x) = y0*exp((x-x1)/x0) for negative exponential argument and f(x) = y0 * (1 + (x-x1)/(x0*exponent))^exponent for (x-x1)/x0 > 0.

Method Detail

compute

public float compute(float x)
Description copied from interface: ScalFunctionOfScal
applies this function to x and returns the result

Specified by:
compute in interface ScalFunctionOfScal

compute

public void compute(float[] x,
                    int n,
                    float[] y)
applies this limited exponential to the array x (0 to n-1 elements) and assigns the result to y


apply

public void apply(float[] x,
                  int n)