public virtual int add_particle(int id, int ispecies, int icell, double[] x, double[] v, double erot, double evib) { int reallocflag = 0; if (nlocal == maxlocal) { grow(1); reallocflag = 1; } OnePart p = particles[nlocal]; p.id = id; p.ispecies = ispecies; p.icell = icell; p.x = new double[3]; p.x[0] = x[0]; p.x[1] = x[1]; p.x[2] = x[2]; p.v = new double[3]; p.v[0] = v[0]; p.v[1] = v[1]; p.v[2] = v[2]; p.erot = erot; p.evib = evib; p.flag = (int)Enum1.PKEEP; //p.dtremain = 0.0; not needed due to memset in grow() ?? //p.weight = 1.0; not needed due to memset in grow() ?? particles[nlocal] = p; nlocal++; return(reallocflag); }
public Particle(SPARTA sparta) { this.sparta = sparta; exist = sorted = false; particles = null; nspecies = maxspecies = 0; species = null; maxvibmode = 0; //maxgrid = 0; //cellcount = null; //first = null; maxsort = 0; next = null; // create two default mixtures mixture = new List <Mixture>(); nmixture = 0; string[] newarg = new string[1]; newarg[0] = "all"; AddMixture(1, newarg); newarg[0] = "species"; AddMixture(1, newarg); // custom per-particle vectors/arrays //ncustom = 0; ename = null; //etype = esize = ewhich = null; ncustom_ivec = ncustom_iarray = 0; icustom_ivec = icustom_iarray = null; //eivec = null; //eiarray = null; eicol = null; ncustom_dvec = ncustom_darray = 0; icustom_dvec = icustom_darray = null; //edvec = null; //edarray = null; edcol = null; custom_restart_flag = null; // RNG for particle weighting wrandom = null; //copy = copymode = 0; }