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()); }
/// <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(); } }