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)/moduleEM.o $(OBJDIR)/moduleRandom.o $(OBJDIR)/moduleMath.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)/moduleMeshInput0D.o $(OBJDIR)/moduleMeshOutput0D.o \
|
||||
$(OBJDIR)/moduleMesh3DCart.o \
|
||||
|
|
|
|||
|
|
@ -42,13 +42,13 @@ MODULE moduleMeshOutput0D
|
|||
USE moduleOutput
|
||||
IMPLICIT NONE
|
||||
|
||||
CLASS(meshGeneric), INTENT(inout):: self
|
||||
CLASS(meshGeneric), INTENT(in):: self
|
||||
INTEGER, INTENT(in):: t
|
||||
CHARACTER(:), ALLOCATABLE:: fileName
|
||||
INTEGER:: k
|
||||
|
||||
fileName='OUTPUT_Collisions.dat'
|
||||
IF (t == 0) THEN
|
||||
IF (t == tInitial) THEN
|
||||
OPEN(20, file = path // folder // '/' // fileName, action = 'write')
|
||||
WRITE(20, "(A1, 14X, A5, A20)") "#","t (s)","collisions"
|
||||
WRITE(*, "(6X,A15,A)") "Creating file: ", fileName
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ MODULE moduleMeshInputGmsh2
|
|||
!Reads a mesh in the Gmsh v2.0 format
|
||||
|
||||
CONTAINS
|
||||
!Inits a mesh to use Gmsh2 format
|
||||
!Init a mesh to use Gmsh2 format
|
||||
SUBROUTINE initGmsh2(self)
|
||||
USE moduleMesh
|
||||
USE moduleMeshOutputGmsh2
|
||||
|
|
@ -23,7 +23,7 @@ MODULE moduleMeshInputGmsh2
|
|||
|
||||
END SUBROUTINE initGmsh2
|
||||
|
||||
!Reads a Gmsh 2 format
|
||||
!Read a Gmsh 2 format
|
||||
SUBROUTINE readGmsh2(self, filename)
|
||||
USE moduleMesh3DCart
|
||||
USE moduleMesh2DCyl
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ MODULE moduleMeshOutputGmsh2
|
|||
USE moduleOutput
|
||||
IMPLICIT NONE
|
||||
|
||||
CLASS(meshGeneric), INTENT(inout):: self
|
||||
CLASS(meshGeneric), INTENT(in):: self
|
||||
INTEGER, INTENT(in):: t
|
||||
INTEGER:: numEdges
|
||||
INTEGER:: k, c
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
all: vtk.o gmsh2.o 0D.o
|
||||
all: vtu.o gmsh2.o 0D.o
|
||||
|
||||
vtk.o:
|
||||
$(MAKE) -C vtk all
|
||||
vtu.o:
|
||||
$(MAKE) -C vtu all
|
||||
|
||||
gmsh2.o:
|
||||
$(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)/$@
|
||||
|
||||
%.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'
|
||||
|
||||
|
|
@ -90,7 +90,7 @@ MODULE moduleMeshOutputVTK
|
|||
indexType = 1
|
||||
|
||||
CLASS DEFAULT
|
||||
CALL criticalError('Cell not valid for VTK output', 'getCellType')
|
||||
CALL criticalError('Cell not valid for VTU output', 'getCellType')
|
||||
|
||||
END SELECT
|
||||
|
||||
|
|
@ -355,7 +355,7 @@ MODULE moduleMeshOutputVTK
|
|||
|
||||
END SUBROUTINE writeAverage
|
||||
|
||||
SUBROUTINE printOutputVTK(self,t)
|
||||
SUBROUTINE printOutputVTU(self,t)
|
||||
USE moduleMesh
|
||||
USE moduleSpecies
|
||||
IMPLICIT NONE
|
||||
|
|
@ -389,9 +389,9 @@ MODULE moduleMeshOutputVTK
|
|||
|
||||
END DO
|
||||
|
||||
END SUBROUTINE printOutputVTK
|
||||
END SUBROUTINE printOutputVTU
|
||||
|
||||
SUBROUTINE printCollVTK(self,t)
|
||||
SUBROUTINE printCollVTU(self,t)
|
||||
USE moduleMesh
|
||||
USE moduleOutput
|
||||
IMPLICIT NONE
|
||||
|
|
@ -426,9 +426,9 @@ MODULE moduleMeshOutputVTK
|
|||
|
||||
END IF
|
||||
|
||||
END SUBROUTINE printCollVTK
|
||||
END SUBROUTINE printCollVTU
|
||||
|
||||
SUBROUTINE printEMVTK(self, t)
|
||||
SUBROUTINE printEMVTU(self, t)
|
||||
USE moduleMesh
|
||||
IMPLICIT NONE
|
||||
|
||||
|
|
@ -460,9 +460,9 @@ MODULE moduleMeshOutputVTK
|
|||
|
||||
END IF
|
||||
|
||||
END SUBROUTINE printEMVTK
|
||||
END SUBROUTINE printEMVTU
|
||||
|
||||
SUBROUTINE printAverageVTK(self)
|
||||
SUBROUTINE printAverageVTU(self)
|
||||
USE moduleMesh
|
||||
USE moduleSpecies
|
||||
IMPLICIT NONE
|
||||
|
|
@ -500,6 +500,6 @@ MODULE moduleMeshOutputVTK
|
|||
|
||||
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
|
||||
SUBROUTINE printColl_interface(self, t)
|
||||
IMPORT meshGeneric
|
||||
CLASS(meshGeneric), INTENT(inout):: self
|
||||
CLASS(meshGeneric), INTENT(in):: self
|
||||
INTEGER, INTENT(in):: t
|
||||
|
||||
END SUBROUTINE printColl_interface
|
||||
|
|
|
|||
|
|
@ -514,7 +514,7 @@ MODULE moduleSolver
|
|||
USE moduleSpecies
|
||||
USE moduleCompTime
|
||||
USE moduleProbe
|
||||
USE moduleMeshOutputVTK !TEMPORARY TO TEST VTK OUTPUT
|
||||
USE moduleMeshOutputVTU !TEMPORARY TO TEST VTU OUTPUT
|
||||
IMPLICIT NONE
|
||||
|
||||
INTEGER, INTENT(in):: t
|
||||
|
|
@ -528,11 +528,11 @@ MODULE moduleSolver
|
|||
|
||||
CALL outputProbes(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 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 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)") "Particles: ", nPartOld
|
||||
IF (t == 0) THEN
|
||||
|
|
@ -565,7 +565,7 @@ MODULE moduleSolver
|
|||
!Output average values
|
||||
IF (useAverage .AND. t == tFinal) THEN
|
||||
CALL mesh%printAverage()
|
||||
CALL printAverageVTK(mesh) !TEMPORARY TO TEST VTK OUTPUT
|
||||
CALL printAverageVTU(mesh) !TEMPORARY TO TEST VTU OUTPUT
|
||||
|
||||
END IF
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue