First version of vtu file format

After some testing and making things a bit better and more general, I am
quite happy with the implementation of vtu and it seems that it is
working (at least as good as Gmsh2).

There are some procedures that might be useful for other XML-like
formats that might be moved in the future to the common module (I am
    thinking right now in the implementation of a general format like
    XDMF3).
This commit is contained in:
Jorge Gonzalez 2023-02-07 16:02:36 +01:00
commit 2c55913501
7 changed files with 51 additions and 39 deletions

View file

@ -85,6 +85,7 @@ MODULE moduleMeshOutputGmsh2
USE moduleRefParam
USE moduleSpecies
USE moduleOutput
USE moduleMeshInoutCommon
IMPLICIT NONE
CLASS(meshParticles), INTENT(in):: self
@ -93,13 +94,11 @@ MODULE moduleMeshOutputGmsh2
TYPE(outputFormat):: output(1:self%numNodes)
REAL(8):: time
CHARACTER(:), ALLOCATABLE:: fileName
CHARACTER (LEN=iterationDigits):: tstring
time = DBLE(t)*tauMin*ti_ref
DO i = 1, nSpecies
WRITE(tstring, iterationFormat) t
fileName= 'OUTPUT_' // tstring// '_' // species(i)%obj%name // '.msh'
fileName = formatFileName(prefix, species(i)%obj%name, 'msh', t)
WRITE(*, "(6X,A15,A)") "Creating file: ", fileName
OPEN (60, file = path // folder // '/' // fileName)
@ -142,6 +141,7 @@ MODULE moduleMeshOutputGmsh2
USE moduleCaseParam
USE moduleCollisions
USE moduleOutput
USE moduleMeshInoutCommon
IMPLICIT NONE
CLASS(meshGeneric), INTENT(in):: self
@ -151,7 +151,6 @@ MODULE moduleMeshOutputGmsh2
INTEGER:: n
REAL(8):: time
CHARACTER(:), ALLOCATABLE:: fileName
CHARACTER (LEN=iterationDigits):: tString
CHARACTER(:), ALLOCATABLE:: title
CHARACTER (LEN=2):: cString
@ -169,9 +168,8 @@ MODULE moduleMeshOutputGmsh2
IF (collOutput) THEN
time = DBLE(t)*tauMin*ti_ref
WRITE(tString, iterationFormat) t
fileName='OUTPUT_' // tString// '_Collisions.msh'
fileName = formatFileName(prefix, 'Collisions', 'msh', t)
WRITE(*, "(6X,A15,A)") "Creating file: ", fileName
OPEN (60, file = path // folder // '/' // fileName)
@ -203,6 +201,7 @@ MODULE moduleMeshOutputGmsh2
USE moduleRefParam
USE moduleCaseParam
USE moduleOutput
USE moduleMeshInoutCommon
IMPLICIT NONE
CLASS(meshParticles), INTENT(in):: self
@ -210,16 +209,14 @@ MODULE moduleMeshOutputGmsh2
INTEGER:: n, e
REAL(8):: time
CHARACTER(:), ALLOCATABLE:: fileName
CHARACTER (LEN=iterationDigits):: tstring
REAL(8):: Xi(1:3)
Xi = (/ 0.D0, 0.D0, 0.D0 /)
IF (emOutput) THEN
time = DBLE(t)*tauMin*ti_ref
WRITE(tstring, iterationFormat) t
fileName='OUTPUT_' // tstring// '_EMField.msh'
fileName = formatFileName(prefix, 'Collisions', 'msh', t)
WRITE(*, "(6X,A15,A)") "Creating file: ", fileName
OPEN (20, file = path // folder // '/' // fileName)
@ -256,6 +253,7 @@ MODULE moduleMeshOutputGmsh2
USE moduleSpecies
USE moduleOutput
USE moduleAverage
USE moduleMeshInoutCommon
IMPLICIT NONE
CLASS(meshParticles), INTENT(in):: self
@ -265,11 +263,11 @@ MODULE moduleMeshOutputGmsh2
INTEGER:: fileMean=10, fileDeviation=20
DO i = 1, nSpecies
fileName= 'Average_mean_' // species(i)%obj%name // '.msh'
fileName = formatFileName('Average_mean', species(i)%obj%name, 'msh')
WRITE(*, "(6X,A15,A)") "Creating file: ", fileName
OPEN (fileMean, file = path // folder // '/' // fileName)
fileName= 'Average_deviation_' // species(i)%obj%name // '.msh'
fileName = formatFileName('Average_deviation', species(i)%obj%name, 'msh')
WRITE(*, "(6X,A15,A)") "Creating file: ", fileName
OPEN (filedeviation, file = path // folder // '/' // fileName)