예제 #1
0
        internal void ComputeContraction(int faceId, MxFaceContraction conx)
        {
            var face = Face(faceId);

            conx.FaceId  = faceId;
            conx.DeltaV1 = new[] { 0.0, 0.0, 0.0 };
            conx.DeltaV2 = new[] { 0.0, 0.0, 0.0 };
            conx.DeltaV3 = new[] { 0.0, 0.0, 0.0 };

            conx.DeltaFaces.Clear();
            conx.DeadFaces.Clear();

            MarkNeighborhood(face[0], 0x0);
            MarkNeighborhood(face[1], 0x0);
            MarkNeighborhood(face[2], 0x0);

            MarkNeighborhood(face[0], 0x1);
            MarkNeighborhoodDelta(face[1], 0x1);
            MarkNeighborhoodDelta(face[2], 0x1);

            FaceMark(faceId, 0x0);

            PartitionMarkedNeighbors(face[0], 0x2, conx.DeltaFaces, conx.DeadFaces);
            PartitionMarkedNeighbors(face[1], 0x2, conx.DeltaFaces, conx.DeadFaces);
            PartitionMarkedNeighbors(face[2], 0x2, conx.DeltaFaces, conx.DeadFaces);
        }
예제 #2
0
        internal void ComputeContraction(int faceId, MxFaceContraction conx)
        {
            var face = Face(faceId);
            conx.FaceId = faceId;
            conx.DeltaV1 = new[] {0.0, 0.0, 0.0};
            conx.DeltaV2 = new[] {0.0, 0.0, 0.0};
            conx.DeltaV3 = new[] {0.0, 0.0, 0.0};

            conx.DeltaFaces.Clear();
            conx.DeadFaces.Clear();

            MarkNeighborhood(face[0], 0x0);
            MarkNeighborhood(face[1], 0x0);
            MarkNeighborhood(face[2], 0x0);

            MarkNeighborhood(face[0], 0x1);
            MarkNeighborhoodDelta(face[1], 0x1);
            MarkNeighborhoodDelta(face[2], 0x1);

            FaceMark(faceId, 0x0);

            PartitionMarkedNeighbors(face[0], 0x2, conx.DeltaFaces, conx.DeadFaces);
            PartitionMarkedNeighbors(face[1], 0x2, conx.DeltaFaces, conx.DeadFaces);
            PartitionMarkedNeighbors(face[2], 0x2, conx.DeltaFaces, conx.DeadFaces);
        }