diff --git a/src/modules/mesh/2DCyl/moduleMesh2DCyl.f90 b/src/modules/mesh/2DCyl/moduleMesh2DCyl.f90 index bac265c..166ae84 100644 --- a/src/modules/mesh/2DCyl/moduleMesh2DCyl.f90 +++ b/src/modules/mesh/2DCyl/moduleMesh2DCyl.f90 @@ -597,18 +597,18 @@ MODULE moduleMesh2DCyl !Computes total volume of the cell self%volume = r*detJ*PI8 !2*pi * 4 (weight of 1 point 2D-Gaussian integral) !Computes volume per node - ! self%n1%v = self%n1%v + fPsi(1)*self%volume - ! self%n2%v = self%n2%v + fPsi(2)*self%volume - ! self%n3%v = self%n3%v + fPsi(3)*self%volume - ! self%n4%v = self%n4%v + fPsi(4)*self%volume - dZ = MAXVAL(self%z) - MIN(self%z) - r2 = MAXVAL(self%r) - r1 = MINVAL(self%r) - - self%n1%v = self%n1%v + dZ/2.D0 * PI * ( r2**2 - 3.0D0*r1**2 + 2.0D0*r2*r1)*0.25D0 - self%n2%v = self%n2%v + dZ/2.D0 * PI * ( r2**2 - 3.0D0*r1**2 + 2.0D0*r2*r1)*0.25D0 - self%n3%v = self%n3%v + dZ/2.D0 * PI * (3.0D0*r2**2 - r1**2 - 2.0D0*r2*r1)*0.25D0 - self%n4%v = self%n4%v + dZ/2.D0 * PI * (3.0D0*r2**2 - r1**2 - 2.0D0*r2*r1)*0.25D0 + Xi = (/-5.D-1, -5.D-1, 0.D0/) + r = self%gatherF(Xi, 4, self%r) + self%n1%v = self%n1%v + fPsi(1)*r*detJ*PI8 + Xi = (/ 5.D-1, -5.D-1, 0.D0/) + r = self%gatherF(Xi, 4, self%r) + self%n2%v = self%n2%v + fPsi(2)*r*detJ*PI8 + Xi = (/ 5.D-1, 5.D-1, 0.D0/) + r = self%gatherF(Xi, 4, self%r) + self%n3%v = self%n3%v + fPsi(3)*r*detJ*PI8 + Xi = (/-5.D-1, 5.D-1, 0.D0/) + r = self%gatherF(Xi, 4, self%r) + self%n4%v = self%n4%v + fPsi(4)*r*detJ*PI8 END SUBROUTINE volumeQuad diff --git a/src/modules/mesh/inout/gmsh2/moduleMeshInputGmsh2.f90 b/src/modules/mesh/inout/gmsh2/moduleMeshInputGmsh2.f90 index 0df1289..11c3b13 100644 --- a/src/modules/mesh/inout/gmsh2/moduleMeshInputGmsh2.f90 +++ b/src/modules/mesh/inout/gmsh2/moduleMeshInputGmsh2.f90 @@ -296,6 +296,20 @@ MODULE moduleMeshInputGmsh2 CLOSE(10) + ! Adjust node volume at axis + SELECT CASE(self%geometry) + CASE("Cyl") + DO n = 1, self%numNodes + r = self%nodes(n)%obj%getCoordinates() + IF (r(2) == 0.D0) THEN + self%nodes(n)%obj%v = self%nodes(n)%obj%v * 3.0D0/2.0D0 + + END IF + + END DO + + END SELECT + !Call mesh connectivity CALL self%connectMesh diff --git a/src/modules/mesh/inout/vtu/moduleMeshInputVTU.f90 b/src/modules/mesh/inout/vtu/moduleMeshInputVTU.f90 index 309ca5c..ff0490a 100644 --- a/src/modules/mesh/inout/vtu/moduleMeshInputVTU.f90 +++ b/src/modules/mesh/inout/vtu/moduleMeshInputVTU.f90 @@ -496,19 +496,19 @@ MODULE moduleMeshInputVTU END DO - ! ! Adjust node volume at axis - ! SELECT CASE(self%geometry) - ! CASE("Cyl") - ! DO n = 1, numNodes - ! r = self%nodes(n)%obj%getCoordinates() - ! IF (r(2) == 0.D0) THEN - ! self%nodes(n)%obj%v = self%nodes(n)%obj%v * 2.0D0!2.0D0/3.0D0 - ! - ! END IF - ! - ! END DO - ! - ! END SELECT + ! Adjust node volume at axis + SELECT CASE(self%geometry) + CASE("Cyl") + DO n = 1, numNodes + r = self%nodes(n)%obj%getCoordinates() + IF (r(2) == 0.D0) THEN + self%nodes(n)%obj%v = self%nodes(n)%obj%v * 3.0D0/2.0D0 + + END IF + + END DO + + END SELECT !Call mesh connectivity CALL self%connectMesh