Presentation is loading. Please wait.

Presentation is loading. Please wait.

Last SPIS / NUM developments

Similar presentations


Presentation on theme: "Last SPIS / NUM developments"— Presentation transcript:

1 Last SPIS / NUM developments
J.-F. Roussel, F. Rogier, D. Volpert ONERA / DESP

2 Outline 1D and 2D elements (wires and thin surfaces)
Spacecraft equivalent circuit Material interactions Several particle sources How to build your own classes (e.g. a particle source)

3 1D and 2D elements (wires and thin surfaces)
Theory: Singularity close to wire or thin surface edge Substract analytical singularity (f ~ ln(r) for wires) Theory explained at last SPINE meeting in June Accuracy testing:

4 Test case number 1:refined mesh around the wire
Mesh on the wire skin General view: 3D mesh including the wire 2D cut of the mesh Cell number :

5 Test case number 2: wire approximation
2D cut of the mesh General view Faces close to the wire Cell number :50 000

6 1D and 2D elements: example:
Box with two wires

7 Spacecraft equivalent circuit
Principle: Coatings => “continuous components”: R and C spread all over surfaces “Discrete components” can be added between electric super nodes Documented in HowTo page spacecraft circuit.html Parameters: Coatings: material conductivities and RIC Discrete components: circuit file name and syntax + Monitoring: Potentials, collected current, emitted current Per electric (super) node, and total To UI (V(t) and I(t) plots), and to spreadsheets: potentials.txt, collectedCurrents.txt, emittedCurrents.txt

8 Material interactions
Material interaction modelling was completed: Radiation induced conductivity Secondary electron emission (SEE) under proton impact Surface conductivity (not really an interaction) NB: already available in June: SEE from electron iùpact, photo-emission No details here, more relevant to WG3 Control from UI: Global on/off flags (local flags not ops) Then local data = material properties (“NASCAP” properties) Cf Controlling NUM from UI.html#Interactions and Controlling NUM from UI.html#_Local_parameters

9 Several particle sources
Principle: Define several different sources on spacecraft from UI Community request, typically a thruster + neutraliser… 4 sources defined, easy to have more (only modify file SpisUI/DefaultValues/defaultGlobalParam.py) In practice: Different global parameters for each source: sourceFlag, sourceType, sourceParticleType for each source Supported types as of today: LocalMaxwellSurfDistrib (0 Mach Maxwellian) MaxwellianThruster (large Mach) Needs to be enriched! Only one set of local parameters: sourceId switches locally between the 4 sources, and sourceCurrent, sourceTemp, sourceMach give local parameters

10 Building your own classes
Principle: Object Oriented approach versus classical programming: Follow a class model, i.e. derive an abstract class (instantiate its abstract methods) Automatic integration versus manual integration: Use a standard constructor so that it can be invoked automatically (basically with UI-defined global and local parameters) In practice: plug and play: Write your class Make it accessible (include it spis.jar in the right package) Type its name in UI As opposed to manual integration where you had to modify some piece of old code to call your new code Documented in Writing UI-supported classes.html

11 Building your own classes: examples
Ex. 1: source of particles defined by a surface velocity distribution derive your class from NonPICSurfDistrib: implement abstract methods, and call NonPICSurfDistrib constructor: provide a SurfSampler to NonPICSurfDistrib constructor void getMoment(SurfField mom, int order, int charge, int mass, int time) float assessTypicalVelo() implement specific constructor based on UI global and local parameters, similar to LocalMaxwellSurfDistrib(GlobalParameter[] globalParams, LocalParameter[] localParams, java.lang.String option, SurfMesh sm, java.lang.Integer sourceId) MaxwellianThruster(GlobalParameter[] globalParams, LocalParameter[] localParams, java.lang.String option, SurfMesh sm, java.lang.Integer sourceId)  Put it in spis.jar (SpisNUm folder) in spis.Surf.SurfDistrib package In UI, set global parameter e.g. "sourceType1" = "MyNewSource" No piece of code to modify

12 Building your own classes: examples
Other "plug and play" classes: Particle populations (electronDistrib, ionDistrib, electronDistrib2, ionDistrib2) Derive from: VolDistribWithIO Constructor: (GlobalParameter[] globalParams, LocalParameter[] localParams, java.lang.String option, VolMesh vm, VectVolField E, VectVolField B) Exist as of today: PICVolDistrib , GlobalMaxwellBoltzmannVolDistrib Environment (environmentType) Derive from: Environment Constructor: (GlobalParameter[] globalParams, LocalParameter[] localParams, java.lang.String option, VolMesh vm, EField E, VectVolField B) Exist as of today: BiMaxwellianEnvironment Other non "plug and play" class: Potentially any class In practice, can be interesting: MaterialModel Interactor ... Need specific integration (e.g. material model id = 2 => such MaterialModel)


Download ppt "Last SPIS / NUM developments"

Similar presentations


Ads by Google