•Building your own classes: examples
ØEx. 1: source of particles defined by a surface velocity distribution
1.derive your class from NonPICSurfDistrib:
A.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()
B.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) 
2.Put it in spis.jar (SpisNUm folder) in spis.Surf.SurfDistrib package
3.In UI, set global parameter e.g. "sourceType1" = "MyNewSource"
¬No piece of code to modify