First step towards reading .vtu mesh
Just setting up the required functions.
This commit is contained in:
parent
6706c5dd1c
commit
f5be04587a
11 changed files with 78 additions and 31 deletions
|
|
@ -5,7 +5,7 @@ OBJECTS = $(OBJDIR)/moduleMesh.o $(OBJDIR)/moduleMeshBoundary.o $(OBJDIR)/module
|
||||||
$(OBJDIR)/moduleCollisions.o $(OBJDIR)/moduleTable.o $(OBJDIR)/moduleParallel.o \
|
$(OBJDIR)/moduleCollisions.o $(OBJDIR)/moduleTable.o $(OBJDIR)/moduleParallel.o \
|
||||||
$(OBJDIR)/moduleEM.o $(OBJDIR)/moduleRandom.o $(OBJDIR)/moduleMath.o \
|
$(OBJDIR)/moduleEM.o $(OBJDIR)/moduleRandom.o $(OBJDIR)/moduleMath.o \
|
||||||
$(OBJDIR)/moduleProbe.o $(OBJDIR)/moduleAverage.o \
|
$(OBJDIR)/moduleProbe.o $(OBJDIR)/moduleAverage.o \
|
||||||
$(OBJDIR)/moduleMeshInputVTK.o $(OBJDIR)/moduleMeshOutputVTK.o \
|
$(OBJDIR)/moduleMeshInputVTU.o $(OBJDIR)/moduleMeshOutputVTU.o \
|
||||||
$(OBJDIR)/moduleMeshInputGmsh2.o $(OBJDIR)/moduleMeshOutputGmsh2.o \
|
$(OBJDIR)/moduleMeshInputGmsh2.o $(OBJDIR)/moduleMeshOutputGmsh2.o \
|
||||||
$(OBJDIR)/moduleMeshInput0D.o $(OBJDIR)/moduleMeshOutput0D.o \
|
$(OBJDIR)/moduleMeshInput0D.o $(OBJDIR)/moduleMeshOutput0D.o \
|
||||||
$(OBJDIR)/moduleMesh3DCart.o \
|
$(OBJDIR)/moduleMesh3DCart.o \
|
||||||
|
|
|
||||||
|
|
@ -42,13 +42,13 @@ MODULE moduleMeshOutput0D
|
||||||
USE moduleOutput
|
USE moduleOutput
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
||||||
CLASS(meshGeneric), INTENT(inout):: self
|
CLASS(meshGeneric), INTENT(in):: self
|
||||||
INTEGER, INTENT(in):: t
|
INTEGER, INTENT(in):: t
|
||||||
CHARACTER(:), ALLOCATABLE:: fileName
|
CHARACTER(:), ALLOCATABLE:: fileName
|
||||||
INTEGER:: k
|
INTEGER:: k
|
||||||
|
|
||||||
fileName='OUTPUT_Collisions.dat'
|
fileName='OUTPUT_Collisions.dat'
|
||||||
IF (t == 0) THEN
|
IF (t == tInitial) THEN
|
||||||
OPEN(20, file = path // folder // '/' // fileName, action = 'write')
|
OPEN(20, file = path // folder // '/' // fileName, action = 'write')
|
||||||
WRITE(20, "(A1, 14X, A5, A20)") "#","t (s)","collisions"
|
WRITE(20, "(A1, 14X, A5, A20)") "#","t (s)","collisions"
|
||||||
WRITE(*, "(6X,A15,A)") "Creating file: ", fileName
|
WRITE(*, "(6X,A15,A)") "Creating file: ", fileName
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ MODULE moduleMeshInputGmsh2
|
||||||
!Reads a mesh in the Gmsh v2.0 format
|
!Reads a mesh in the Gmsh v2.0 format
|
||||||
|
|
||||||
CONTAINS
|
CONTAINS
|
||||||
!Inits a mesh to use Gmsh2 format
|
!Init a mesh to use Gmsh2 format
|
||||||
SUBROUTINE initGmsh2(self)
|
SUBROUTINE initGmsh2(self)
|
||||||
USE moduleMesh
|
USE moduleMesh
|
||||||
USE moduleMeshOutputGmsh2
|
USE moduleMeshOutputGmsh2
|
||||||
|
|
@ -23,7 +23,7 @@ MODULE moduleMeshInputGmsh2
|
||||||
|
|
||||||
END SUBROUTINE initGmsh2
|
END SUBROUTINE initGmsh2
|
||||||
|
|
||||||
!Reads a Gmsh 2 format
|
!Read a Gmsh 2 format
|
||||||
SUBROUTINE readGmsh2(self, filename)
|
SUBROUTINE readGmsh2(self, filename)
|
||||||
USE moduleMesh3DCart
|
USE moduleMesh3DCart
|
||||||
USE moduleMesh2DCyl
|
USE moduleMesh2DCyl
|
||||||
|
|
|
||||||
|
|
@ -144,7 +144,7 @@ MODULE moduleMeshOutputGmsh2
|
||||||
USE moduleOutput
|
USE moduleOutput
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
||||||
CLASS(meshGeneric), INTENT(inout):: self
|
CLASS(meshGeneric), INTENT(in):: self
|
||||||
INTEGER, INTENT(in):: t
|
INTEGER, INTENT(in):: t
|
||||||
INTEGER:: numEdges
|
INTEGER:: numEdges
|
||||||
INTEGER:: k, c
|
INTEGER:: k, c
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
all: vtk.o gmsh2.o 0D.o
|
all: vtu.o gmsh2.o 0D.o
|
||||||
|
|
||||||
vtk.o:
|
vtu.o:
|
||||||
$(MAKE) -C vtk all
|
$(MAKE) -C vtu all
|
||||||
|
|
||||||
gmsh2.o:
|
gmsh2.o:
|
||||||
$(MAKE) -C gmsh2 all
|
$(MAKE) -C gmsh2 all
|
||||||
|
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
MODULE moduleMeshInputVTK
|
|
||||||
|
|
||||||
END MODULE moduleMeshInputVTK
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
all: moduleMeshInputVTK.o moduleMeshOutputVTK.o
|
all: moduleMeshInputVTU.o moduleMeshOutputVTU.o
|
||||||
|
|
||||||
moduleMeshInputVTK.o: moduleMeshOutputVTK.o moduleMeshInputVTK.f90
|
moduleMeshInputVTU.o: moduleMeshOutputVTU.o moduleMeshInputVTU.f90
|
||||||
$(FC) $(FCFLAGS) -c $(subst .o,.f90,$@) -o $(OBJDIR)/$@
|
$(FC) $(FCFLAGS) -c $(subst .o,.f90,$@) -o $(OBJDIR)/$@
|
||||||
|
|
||||||
%.o: %.f90
|
%.o: %.f90
|
||||||
50
src/modules/mesh/inout/vtu/moduleMeshInputVTU.f90
Normal file
50
src/modules/mesh/inout/vtu/moduleMeshInputVTU.f90
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
MODULE moduleMeshInputVTK
|
||||||
|
!Reads mesh in the VTU format
|
||||||
|
|
||||||
|
CONTAINS
|
||||||
|
SUBROUTINE initVTK(self)
|
||||||
|
USE moduleMesh
|
||||||
|
USE moduleMeshOutputVTU
|
||||||
|
IMPLICIT NONE
|
||||||
|
|
||||||
|
CLASS(meshGeneric), INTENT(inout), TARGET:: self
|
||||||
|
|
||||||
|
IF (ASSOCIATED(meshForMCC, self)) self%printColl => printCollVTU
|
||||||
|
SELECT TYPE(self)
|
||||||
|
TYPE IS(meshParticles)
|
||||||
|
self%printOutput => printOutputVTU
|
||||||
|
self%printEM => printEMVTU
|
||||||
|
self%readInitial => readInitialVTU
|
||||||
|
self%printAverage => printAverageVTU
|
||||||
|
|
||||||
|
END SELECT
|
||||||
|
self%readMesh => readVTU
|
||||||
|
|
||||||
|
END SUBROUTINE initVTK
|
||||||
|
|
||||||
|
SUBROUTINE readVTU(self, filename)
|
||||||
|
USE moduleMesh3DCart
|
||||||
|
USE moduleMesh2DCyl
|
||||||
|
USE moduleMesh2DCart
|
||||||
|
USE moduleMesh1DRad
|
||||||
|
USE moduleMesh1DCart
|
||||||
|
USE moduleBoundary
|
||||||
|
IMPLICIT NONE
|
||||||
|
|
||||||
|
CLASS(meshGeneric), INTENT(inout):: self
|
||||||
|
CHARACTER(:), ALLOCATABLE, INTENT(in):: filename
|
||||||
|
REAL(8):: r(1:3) !3 generic coordinates
|
||||||
|
|
||||||
|
END SUBROUTINE readVTU
|
||||||
|
|
||||||
|
SUBROUTINE readInitialVTU(filename, density, velocity, temperature)
|
||||||
|
IMPLICIT NONE
|
||||||
|
|
||||||
|
CHARACTER(:), ALLOCATABLE, INTENT(in):: filename
|
||||||
|
REAL(8), ALLOCATABLE, INTENT(out), DIMENSION(:):: density
|
||||||
|
REAL(8), ALLOCATABLE, INTENT(out), DIMENSION(:,:):: velocity
|
||||||
|
REAL(8), ALLOCATABLE, INTENT(out), DIMENSION(:):: temperature
|
||||||
|
|
||||||
|
END SUBROUTINE readInitialVTU
|
||||||
|
|
||||||
|
END MODULE moduleMeshInputVTK
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
MODULE moduleMeshOutputVTK
|
MODULE moduleMeshOutputVTU
|
||||||
|
|
||||||
CHARACTER(LEN=6):: prefix = 'OUTPUT'
|
CHARACTER(LEN=6):: prefix = 'OUTPUT'
|
||||||
|
|
||||||
|
|
@ -90,7 +90,7 @@ MODULE moduleMeshOutputVTK
|
||||||
indexType = 1
|
indexType = 1
|
||||||
|
|
||||||
CLASS DEFAULT
|
CLASS DEFAULT
|
||||||
CALL criticalError('Cell not valid for VTK output', 'getCellType')
|
CALL criticalError('Cell not valid for VTU output', 'getCellType')
|
||||||
|
|
||||||
END SELECT
|
END SELECT
|
||||||
|
|
||||||
|
|
@ -355,7 +355,7 @@ MODULE moduleMeshOutputVTK
|
||||||
|
|
||||||
END SUBROUTINE writeAverage
|
END SUBROUTINE writeAverage
|
||||||
|
|
||||||
SUBROUTINE printOutputVTK(self,t)
|
SUBROUTINE printOutputVTU(self,t)
|
||||||
USE moduleMesh
|
USE moduleMesh
|
||||||
USE moduleSpecies
|
USE moduleSpecies
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
@ -389,9 +389,9 @@ MODULE moduleMeshOutputVTK
|
||||||
|
|
||||||
END DO
|
END DO
|
||||||
|
|
||||||
END SUBROUTINE printOutputVTK
|
END SUBROUTINE printOutputVTU
|
||||||
|
|
||||||
SUBROUTINE printCollVTK(self,t)
|
SUBROUTINE printCollVTU(self,t)
|
||||||
USE moduleMesh
|
USE moduleMesh
|
||||||
USE moduleOutput
|
USE moduleOutput
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
@ -426,9 +426,9 @@ MODULE moduleMeshOutputVTK
|
||||||
|
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
END SUBROUTINE printCollVTK
|
END SUBROUTINE printCollVTU
|
||||||
|
|
||||||
SUBROUTINE printEMVTK(self, t)
|
SUBROUTINE printEMVTU(self, t)
|
||||||
USE moduleMesh
|
USE moduleMesh
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
||||||
|
|
@ -460,9 +460,9 @@ MODULE moduleMeshOutputVTK
|
||||||
|
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
END SUBROUTINE printEMVTK
|
END SUBROUTINE printEMVTU
|
||||||
|
|
||||||
SUBROUTINE printAverageVTK(self)
|
SUBROUTINE printAverageVTU(self)
|
||||||
USE moduleMesh
|
USE moduleMesh
|
||||||
USE moduleSpecies
|
USE moduleSpecies
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
@ -500,6 +500,6 @@ MODULE moduleMeshOutputVTK
|
||||||
|
|
||||||
END DO
|
END DO
|
||||||
|
|
||||||
END SUBROUTINE printAverageVTK
|
END SUBROUTINE printAverageVTU
|
||||||
|
|
||||||
END MODULE moduleMeshOutputVTK
|
END MODULE moduleMeshOutputVTU
|
||||||
|
|
@ -374,7 +374,7 @@ MODULE moduleMesh
|
||||||
!Prints number of collisions in each cell
|
!Prints number of collisions in each cell
|
||||||
SUBROUTINE printColl_interface(self, t)
|
SUBROUTINE printColl_interface(self, t)
|
||||||
IMPORT meshGeneric
|
IMPORT meshGeneric
|
||||||
CLASS(meshGeneric), INTENT(inout):: self
|
CLASS(meshGeneric), INTENT(in):: self
|
||||||
INTEGER, INTENT(in):: t
|
INTEGER, INTENT(in):: t
|
||||||
|
|
||||||
END SUBROUTINE printColl_interface
|
END SUBROUTINE printColl_interface
|
||||||
|
|
|
||||||
|
|
@ -514,7 +514,7 @@ MODULE moduleSolver
|
||||||
USE moduleSpecies
|
USE moduleSpecies
|
||||||
USE moduleCompTime
|
USE moduleCompTime
|
||||||
USE moduleProbe
|
USE moduleProbe
|
||||||
USE moduleMeshOutputVTK !TEMPORARY TO TEST VTK OUTPUT
|
USE moduleMeshOutputVTU !TEMPORARY TO TEST VTU OUTPUT
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
||||||
INTEGER, INTENT(in):: t
|
INTEGER, INTENT(in):: t
|
||||||
|
|
@ -528,11 +528,11 @@ MODULE moduleSolver
|
||||||
|
|
||||||
CALL outputProbes(t)
|
CALL outputProbes(t)
|
||||||
CALL mesh%printOutput(t)
|
CALL mesh%printOutput(t)
|
||||||
CALL printOutputVTK(mesh, t) !TEMPORARY TO TEST VTK OUTPUT
|
CALL printOutputVTU(mesh, t) !TEMPORARY TO TEST VTU OUTPUT
|
||||||
IF (ASSOCIATED(meshForMCC)) CALL meshForMCC%printColl(t)
|
IF (ASSOCIATED(meshForMCC)) CALL meshForMCC%printColl(t)
|
||||||
IF (ASSOCIATED(meshForMCC)) CALL printCollVTK(meshForMCC,t) !TEMPORARY TO TEST VTK OUTPUT
|
IF (ASSOCIATED(meshForMCC)) CALL printCollVTU(meshForMCC,t) !TEMPORARY TO TEST VTU OUTPUT
|
||||||
CALL mesh%printEM(t)
|
CALL mesh%printEM(t)
|
||||||
CALL printEMVTK(mesh, t) !TEMPORARY TO TEST VTK OUTPUT
|
CALL printEMVTU(mesh, t) !TEMPORARY TO TEST VTU OUTPUT
|
||||||
WRITE(*, "(5X,A21,I10,A1,I10)") "t/tFinal: ", t, "/", tFinal
|
WRITE(*, "(5X,A21,I10,A1,I10)") "t/tFinal: ", t, "/", tFinal
|
||||||
WRITE(*, "(5X,A21,I10)") "Particles: ", nPartOld
|
WRITE(*, "(5X,A21,I10)") "Particles: ", nPartOld
|
||||||
IF (t == 0) THEN
|
IF (t == 0) THEN
|
||||||
|
|
@ -565,7 +565,7 @@ MODULE moduleSolver
|
||||||
!Output average values
|
!Output average values
|
||||||
IF (useAverage .AND. t == tFinal) THEN
|
IF (useAverage .AND. t == tFinal) THEN
|
||||||
CALL mesh%printAverage()
|
CALL mesh%printAverage()
|
||||||
CALL printAverageVTK(mesh) !TEMPORARY TO TEST VTK OUTPUT
|
CALL printAverageVTU(mesh) !TEMPORARY TO TEST VTU OUTPUT
|
||||||
|
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue