|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectspis.Solver.Poisson.PoissonSolver
Class Name : PoissonSolver (generic Poisson Solver)
Project ref : SPIS project
File name : PoissonSolver.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 abstract Poisson Solver class.
Stores data necessary for Poisson equation solving:
- mesh data (possibly only throug reference to a volume mesh
- boundary conditions
- solver tuning parameters
Provides two main methods: initialisation and solving.
Versions and anomalies correction :
Version number | Author (name, e-mail) | Corrections/Modifications |
0.1 | JF Roussel, roussel@onecert.fr | Creation |
Constructor Summary | |
PoissonSolver(VolMesh volMesh,
SurfMesh boundarySurfMesh,
SurfMesh scSurfMesh,
PoissonBC boundaryBC,
PoissonBC scBC,
float ne,
float Te,
float ne2,
float Te2,
boolean linear_)
Default constructor. |
Method Summary | |
abstract AnalyticVolDistrib |
getAnalyticDens(VectVolField E)
Returns the analytic volume distribution the non-linear solver is based upon. |
PoissonBC |
getBbc()
returns external Boundary Boundary Condition (pointer, no copy) |
SurfMesh |
getBsm()
returns Boundary Surface Mesh (pointer, no copy) |
float |
getElecDens()
|
float |
getElecDens2()
|
float |
getElecTemp()
|
float |
getElecTemp2()
|
PoissonBC |
getScbc()
returns SpaceCraft Boundary Condition (pointer, no copy) |
SurfMesh |
getScsm()
returns SpaceCraft Surfave Mesh (pointer, no copy) |
VolMesh |
getVm()
returns volume mesh (pointer, no copy) |
abstract void |
init()
Initialises solver. |
abstract void |
initFromBc()
Initialises internal data (matrices...), which have to be updated when new boundary conditions are modified (to be called each time BC are modified, including SC potential change, but should be done by the BC and potential updating methods of PoissonSolver classes) |
abstract void |
interpolatePotential(PointList pl,
ScalVolField pot,
FloatScalTable val)
Interpolates the potential at each particle position: The interpolation should be specific to the solver and better than the generic linear interpolation provided by the VolMesh for a VolField. |
abstract void |
interpolatePotGradient(PointList pl,
ScalVolField pot,
VectTable val)
Computes the potential gradient (minus the electric field) at each particle position. |
boolean |
isLinear()
|
void |
setElecDens(float f)
|
void |
setElecDens2(float f)
|
void |
setElecTemp(float f)
|
void |
setElecTemp2(float f)
|
void |
setLinear(boolean b)
|
void |
setScPot(ScalSurfField scPot)
Sets the boundary condition on spacecraft to Dirichlet (fixed potential) |
void |
solve(ScalVolField density,
VectVolField E)
Default call to the solver. |
abstract void |
solveLinear(ScalVolField density,
VectVolField E)
Solves Poisson equation. |
abstract void |
solveNonLinear(ScalVolField density,
VectVolField E)
Solves non-linear Poisson equation (electron density = exp(pot/Te). |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public PoissonSolver(VolMesh volMesh, SurfMesh boundarySurfMesh, SurfMesh scSurfMesh, PoissonBC boundaryBC, PoissonBC scBC, float ne, float Te, float ne2, float Te2, boolean linear_)
Method Detail |
public abstract void init()
public abstract void initFromBc()
public abstract void solveLinear(ScalVolField density, VectVolField E)
public abstract void solveNonLinear(ScalVolField density, VectVolField E)
public void solve(ScalVolField density, VectVolField E)
density
- E
- solveLinear(ScalVolField, VectVolField)
,
solveNonLinear(ScalVolField, VectVolField)
public abstract void interpolatePotGradient(PointList pl, ScalVolField pot, VectTable val)
pl
- particle list (points are enough)pot
- optential (input)val
- gradient at particle locationsVolMesh.computeGradient(PointList, ScalVolField, VectTable)
public abstract void interpolatePotential(PointList pl, ScalVolField pot, FloatScalTable val)
pl
- particle list (points are enough)pot
- potential (input)val
- gradient at particle locationsVolMesh.interpolate(PointList, VolField, Table)
public abstract AnalyticVolDistrib getAnalyticDens(VectVolField E)
E
- pointer to the electric field to be used for this analytic distributionpublic void setScPot(ScalSurfField scPot)
scPot
- the fixed potenial valuepublic VolMesh getVm()
public SurfMesh getBsm()
public SurfMesh getScsm()
public PoissonBC getBbc()
public PoissonBC getScbc()
public float getElecDens()
public float getElecTemp()
public boolean isLinear()
public void setElecDens(float f)
f
- public void setElecTemp(float f)
f
- public void setLinear(boolean b)
b
- public float getElecDens2()
public float getElecTemp2()
public void setElecDens2(float f)
f
- public void setElecTemp2(float f)
f
-
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |