Esempio n. 1
0
        public Particle(int Dim, double[] startPos = null, double startAngl = 0.0)
        {
            SpatialDim = Dim;

            // Particle history
            // =============================
            for (int i = 0; i < m_HistoryLength; i++)
            {
                Position.Add(new double[Dim]);
                Angle.Add(new double());
                TranslationalVelocity.Add(new double[Dim]);
                TranslationalAcceleration.Add(new double[Dim]);
                RotationalVelocity.Add(new double());
                RotationalAcceleration.Add(new double());
                HydrodynamicForces.Add(new double[Dim]);
                HydrodynamicTorque.Add(new double());
            }

            // =============================
            if (startPos == null)
            {
                startPos = new double[Dim];
            }
            Position[0] = startPos;
            Position[1] = startPos;
            //From degree to radiant
            Angle[0] = StartingAngle = startAngl * 2 * Math.PI / 360;
            Angle[1] = startAngl * 2 * Math.PI / 360;

            //UpdateLevelSetFunction();
        }
        public override string ToString()
        {
            StringBuilder __sb = new StringBuilder("MAccelerationConstraint(");

            __sb.Append(", ParentObjectID: ");
            __sb.Append(ParentObjectID);
            if (ParentToConstraint != null && __isset.ParentToConstraint)
            {
                __sb.Append(", ParentToConstraint: ");
                __sb.Append(ParentToConstraint == null ? "<null>" : ParentToConstraint.ToString());
            }
            if (TranslationalAcceleration != null && __isset.TranslationalAcceleration)
            {
                __sb.Append(", TranslationalAcceleration: ");
                __sb.Append(TranslationalAcceleration == null ? "<null>" : TranslationalAcceleration.ToString());
            }
            if (RotationalAcceleration != null && __isset.RotationalAcceleration)
            {
                __sb.Append(", RotationalAcceleration: ");
                __sb.Append(RotationalAcceleration == null ? "<null>" : RotationalAcceleration.ToString());
            }
            if (__isset.WeightingFactor)
            {
                __sb.Append(", WeightingFactor: ");
                __sb.Append(WeightingFactor);
            }
            __sb.Append(")");
            return(__sb.ToString());
        }
Esempio n. 3
0
 /// <summary>
 /// The standard description of motion including hydrodynamics.
 /// </summary>
 /// <param name="gravity">
 /// The gravity (volume forces) acting on the particle.
 /// </param>
 /// <param name="density">
 /// The density of the particle.
 /// </param>
 public Motion(Vector gravity, double density)
 {
     if (gravity.IsNullOrEmpty())
     {
         gravity = new Vector(0, 0);
     }
     Gravity = new Vector(gravity);
     Density = density;
     for (int i = 0; i < NumberOfHistoryEntries; i++)
     {
         Position.Add(new Vector(SpatialDim));
         TranslationalVelocity.Add(new Vector(SpatialDim));
         TranslationalAcceleration.Add(new Vector(SpatialDim));
         HydrodynamicForces.Add(new Vector(SpatialDim));
         Angle.Add(new double());
         RotationalVelocity.Add(new double());
         RotationalAcceleration.Add(new double());
         HydrodynamicTorque.Add(new double());
     }
 }
 public void Write(TProtocol oprot)
 {
     oprot.IncrementRecursionDepth();
     try
     {
         TStruct struc = new TStruct("MAccelerationConstraint");
         oprot.WriteStructBegin(struc);
         TField field = new TField();
         if (ParentObjectID == null)
         {
             throw new TProtocolException(TProtocolException.INVALID_DATA, "required field ParentObjectID not set");
         }
         field.Name = "ParentObjectID";
         field.Type = TType.String;
         field.ID   = 1;
         oprot.WriteFieldBegin(field);
         oprot.WriteString(ParentObjectID);
         oprot.WriteFieldEnd();
         if (ParentToConstraint != null && __isset.ParentToConstraint)
         {
             field.Name = "ParentToConstraint";
             field.Type = TType.Struct;
             field.ID   = 2;
             oprot.WriteFieldBegin(field);
             ParentToConstraint.Write(oprot);
             oprot.WriteFieldEnd();
         }
         if (TranslationalAcceleration != null && __isset.TranslationalAcceleration)
         {
             field.Name = "TranslationalAcceleration";
             field.Type = TType.Struct;
             field.ID   = 3;
             oprot.WriteFieldBegin(field);
             TranslationalAcceleration.Write(oprot);
             oprot.WriteFieldEnd();
         }
         if (RotationalAcceleration != null && __isset.RotationalAcceleration)
         {
             field.Name = "RotationalAcceleration";
             field.Type = TType.Struct;
             field.ID   = 4;
             oprot.WriteFieldBegin(field);
             RotationalAcceleration.Write(oprot);
             oprot.WriteFieldEnd();
         }
         if (__isset.WeightingFactor)
         {
             field.Name = "WeightingFactor";
             field.Type = TType.Double;
             field.ID   = 5;
             oprot.WriteFieldBegin(field);
             oprot.WriteDouble(WeightingFactor);
             oprot.WriteFieldEnd();
         }
         oprot.WriteFieldStop();
         oprot.WriteStructEnd();
     }
     finally
     {
         oprot.DecrementRecursionDepth();
     }
 }