Example #1
0
        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);
        }
Example #2
0
        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;
        }