Trying to organise output better

This commit is contained in:
Jorge Gonzalez 2026-03-11 19:15:58 +01:00
commit 0109dc2f06
11 changed files with 196 additions and 192 deletions

View file

@ -16,6 +16,7 @@ MODULE moduleMeshOutputGmsh2
!Node data subroutines
!Header
SUBROUTINE writeGmsh2HeaderNodeData(fileID, title, iteration, time, dimensions, nNodes)
use moduleOutput
IMPLICIT NONE
INTEGER, INTENT(in):: fileID
@ -25,14 +26,14 @@ MODULE moduleMeshOutputGmsh2
WRITE(fileID, "(A)") '$NodeData'
WRITE(fileID, "(I10)") 1
WRITE(fileID, "("//fmtInt//")") 1
WRITE(fileID, "(A1, A, A1)") '"' , title , '"'
WRITE(fileID, "(I10)") 1
WRITE(fileID, "(ES20.6E3)") time
WRITE(fileID, "(I10)") 3
WRITE(fileID, "(I10)") iteration
WRITE(fileID, "(I10)") dimensions
WRITE(fileID, "(I10)") nNodes
WRITE(fileID, "("//fmtInt//")") 1
WRITE(fileID, "("//fmtReal//")") time
WRITE(fileID, "("//fmtInt//")") 3
WRITE(fileID, "("//fmtInt//")") iteration
WRITE(fileID, "("//fmtInt//")") dimensions
WRITE(fileID, "("//fmtInt//")") nNodes
END SUBROUTINE writeGmsh2HeaderNodeData
@ -49,6 +50,7 @@ MODULE moduleMeshOutputGmsh2
!Element data subroutines
!Header
SUBROUTINE writeGmsh2HeaderElementData(fileID, title, iteration, time, dimensions, nVols)
use moduleOutput
IMPLICIT NONE
INTEGER, INTENT(in):: fileID
@ -58,14 +60,14 @@ MODULE moduleMeshOutputGmsh2
WRITE(fileID, "(A)") '$ElementData'
WRITE(fileID, "(I10)") 1
WRITE(fileID, "("//fmtInt//")") 1
WRITE(fileID, "(A1, A, A1)") '"' , title , '"'
WRITE(fileID, "(I10)") 1
WRITE(fileID, "(ES20.6E3)") time
WRITE(fileID, "(I10)") 3
WRITE(fileID, "(I10)") iteration
WRITE(fileID, "(I10)") dimensions
WRITE(fileID, "(I10)") nVols
WRITE(fileID, "("//fmtInt//")") 1
WRITE(fileID, "("//fmtReal//")") time
WRITE(fileID, "("//fmtInt//")") 3
WRITE(fileID, "("//fmtInt//")") iteration
WRITE(fileID, "("//fmtInt//")") dimensions
WRITE(fileID, "("//fmtInt//")") nVols
END SUBROUTINE writeGmsh2HeaderElementData
@ -85,7 +87,6 @@ MODULE moduleMeshOutputGmsh2
USE moduleRefParam
USE moduleSpecies
USE moduleOutput
USE moduleMeshInoutCommon
USE moduleCaseParam, ONLY: timeStep
IMPLICIT NONE
@ -99,33 +100,33 @@ MODULE moduleMeshOutputGmsh2
DO i = 1, nSpecies
fileName = formatFileName(prefix, species(i)%obj%name, 'msh', timeStep)
WRITE(*, "(6X,A15,A)") "Creating file: ", fileName
OPEN (60, file = path // folder // '/' // fileName)
call informFileCreation(fileName)
OPEN (60, file = generateFilePath(fileName))
CALL writeGmsh2HeaderMesh(60)
CALL writeGmsh2HeaderNodeData(60, species(i)%obj%name // ' density (m^-3)', timeStep, time, 1, self%numNodes)
DO n=1, self%numNodes
CALL calculateOutput(self%nodes(n)%obj%output(i), output(n), self%nodes(n)%obj%v, species(i)%obj)
WRITE(60, "(I6,ES20.6E3)") n, output(n)%density
WRITE(60, "(I6,"//fmtReal//")") n, output(n)%density
END DO
CALL writeGmsh2FooterNodeData(60)
CALL writeGmsh2HeaderNodeData(60, species(i)%obj%name // ' velocity (m s^-1)', timeStep, time, 3, self%numNodes)
DO n=1, self%numNodes
WRITE(60, "(I6,3(ES20.6E3))") n, output(n)%velocity
WRITE(60, "(I6,3("//fmtReal//"))") n, output(n)%velocity
END DO
CALL writeGmsh2FooterNodeData(60)
CALL writeGmsh2HeaderNodeData(60, species(i)%obj%name // ' Pressure (Pa)', timeStep, time, 1, self%numNodes)
DO n=1, self%numNodes
WRITE(60, "(I6,3(ES20.6E3))") n, output(n)%pressure
WRITE(60, "(I6,3("//fmtReal//"))") n, output(n)%pressure
END DO
CALL writeGmsh2FooterNodeData(60)
CALL writeGmsh2HeaderNodeData(60, species(i)%obj%name // ' Temperature (K)', timeStep, time, 1, self%numNodes)
DO n=1, self%numNodes
WRITE(60, "(I6,3(ES20.6E3))") n, output(n)%temperature
WRITE(60, "(I6,3("//fmtReal//"))") n, output(n)%temperature
END DO
CALL writeGmsh2FooterNodeData(60)
CLOSE (60)
@ -141,7 +142,6 @@ MODULE moduleMeshOutputGmsh2
USE moduleCaseParam
USE moduleCollisions
USE moduleOutput
USE moduleMeshInoutCommon
IMPLICIT NONE
CLASS(meshGeneric), INTENT(in):: self
@ -169,8 +169,8 @@ MODULE moduleMeshOutputGmsh2
time = DBLE(timeStep)*tauMin*ti_ref
fileName = formatFileName(prefix, 'Collisions', 'msh', timeStep)
WRITE(*, "(6X,A15,A)") "Creating file: ", fileName
OPEN (60, file = path // folder // '/' // fileName)
call informFileCreation(fileName)
OPEN (60, file = generateFilePath(fileName))
CALL writeGmsh2HeaderMesh(60)
@ -180,7 +180,7 @@ MODULE moduleMeshOutputGmsh2
title = '"Pair ' // interactionMatrix(k)%sp_i%name // '-' // interactionMatrix(k)%sp_j%name // ' collision ' // cString
CALL writeGmsh2HeaderElementData(60, title, timeStep, time, 1, self%numCells)
DO n=1, self%numCells
WRITE(60, "(I6,I10)") n + numEdges, self%cells(n)%obj%tallyColl(k)%tally(c)
WRITE(60, "(I6,"//fmtInt//")") n + numEdges, self%cells(n)%obj%tallyColl(k)%tally(c)
END DO
CALL writeGmsh2FooterElementData(60)
@ -200,7 +200,6 @@ MODULE moduleMeshOutputGmsh2
USE moduleRefParam
USE moduleCaseParam
USE moduleOutput
USE moduleMeshInoutCommon
IMPLICIT NONE
CLASS(meshParticles), INTENT(in):: self
@ -215,8 +214,8 @@ MODULE moduleMeshOutputGmsh2
time = DBLE(timeStep)*tauMin*ti_ref
fileName = formatFileName(prefix, 'EMField', 'msh', timeStep)
WRITE(*, "(6X,A15,A)") "Creating file: ", fileName
OPEN (20, file = path // folder // '/' // fileName)
call informFileCreation(fileName)
OPEN (20, file = generateFilePath(fileName))
CALL writeGmsh2HeaderMesh(20)
@ -251,7 +250,6 @@ MODULE moduleMeshOutputGmsh2
USE moduleSpecies
USE moduleOutput
USE moduleAverage
USE moduleMeshInoutCommon
IMPLICIT NONE
CLASS(meshParticles), INTENT(in):: self
@ -262,12 +260,12 @@ MODULE moduleMeshOutputGmsh2
DO i = 1, nSpecies
fileName = formatFileName('Average_mean', species(i)%obj%name, 'msh')
WRITE(*, "(6X,A15,A)") "Creating file: ", fileName
OPEN (fileMean, file = path // folder // '/' // fileName)
call informFileCreation(fileName)
OPEN (fileMean, file = generateFilePath(fileName))
fileName = formatFileName('Average_deviation', species(i)%obj%name, 'msh')
WRITE(*, "(6X,A15,A)") "Creating file: ", fileName
OPEN (filedeviation, file = path // folder // '/' // fileName)
call informFileCreation(fileName)
OPEN (filedeviation, file = generateFilePath(fileName))
CALL writeGmsh2HeaderMesh(fileMean)
CALL writeGmsh2HeaderMesh(fileDeviation)
@ -276,9 +274,9 @@ MODULE moduleMeshOutputGmsh2
CALL writeGmsh2HeaderNodeData(fileDeviation, species(i)%obj%name // ' density, sd (m^-3)', 0, 0.D0, 1, self%numNodes)
DO n=1, self%numNodes
CALL calculateOutput(averageScheme(n)%mean%output(i), outputMean(n), self%nodes(n)%obj%v, species(i)%obj)
WRITE(fileMean, "(I6,ES20.6E3)") n, outputMean(n)%density
WRITE(fileMean, "(I6,"//fmtReal//")") n, outputMean(n)%density
CALL calculateOutput(averageScheme(n)%deviation%output(i), outputDeviation(n), self%nodes(n)%obj%v, species(i)%obj)
WRITE(fileDeviation, "(I6,ES20.6E3)") n, outputDeviation(n)%density
WRITE(fileDeviation, "(I6,"//fmtReal//")") n, outputDeviation(n)%density
END DO
CALL writeGmsh2FooterNodeData(fileMean)
CALL writeGmsh2FooterNodeData(fileDeviation)
@ -286,8 +284,8 @@ MODULE moduleMeshOutputGmsh2
CALL writeGmsh2HeaderNodeData(fileMean, species(i)%obj%name // ' velocity, mean (m s^-1)', 0, 0.D0, 3, self%numNodes)
CALL writeGmsh2HeaderNodeData(fileDeviation, species(i)%obj%name // ' velocity, sd (m s^-1)', 0, 0.D0, 3, self%numNodes)
DO n=1, self%numNodes
WRITE(fileMean, "(I6,3(ES20.6E3))") n, outputMean(n)%velocity
WRITE(fileDeviation, "(I6,3(ES20.6E3))") n, outputDeviation(n)%velocity
WRITE(fileMean, "(I6,3("//fmtReal//"))") n, outputMean(n)%velocity
WRITE(fileDeviation, "(I6,3("//fmtReal//"))") n, outputDeviation(n)%velocity
END DO
CALL writeGmsh2FooterNodeData(fileMean)
CALL writeGmsh2FooterNodeData(fileDeviation)
@ -295,8 +293,8 @@ MODULE moduleMeshOutputGmsh2
CALL writeGmsh2HeaderNodeData(fileMean, species(i)%obj%name // ' Pressure, mean (Pa)', 0, 0.D0, 1, self%numNodes)
CALL writeGmsh2HeaderNodeData(fileDeviation, species(i)%obj%name // ' Pressure, sd (Pa)', 0, 0.D0, 1, self%numNodes)
DO n=1, self%numNodes
WRITE(fileMean, "(I6,3(ES20.6E3))") n, outputMean(n)%pressure
WRITE(fileDeviation, "(I6,3(ES20.6E3))") n, outputDeviation(n)%pressure
WRITE(fileMean, "(I6,3("//fmtReal//"))") n, outputMean(n)%pressure
WRITE(fileDeviation, "(I6,3("//fmtReal//"))") n, outputDeviation(n)%pressure
END DO
CALL writeGmsh2FooterNodeData(fileMean)
CALL writeGmsh2FooterNodeData(fileDeviation)
@ -304,8 +302,8 @@ MODULE moduleMeshOutputGmsh2
CALL writeGmsh2HeaderNodeData(fileMean, species(i)%obj%name // ' Temperature, mean (K)', 0, 0.D0, 1, self%numNodes)
CALL writeGmsh2HeaderNodeData(fileDeviation, species(i)%obj%name // ' Temperature, sd (K)', 0, 0.D0, 1, self%numNodes)
DO n=1, self%numNodes
WRITE(fileMean, "(I6,3(ES20.6E3))") n, outputMean(n)%temperature
WRITE(fileDeviation, "(I6,3(ES20.6E3))") n, outputDeviation(n)%temperature
WRITE(fileMean, "(I6,3("//fmtReal//"))") n, outputMean(n)%temperature
WRITE(fileDeviation, "(I6,3("//fmtReal//"))") n, outputDeviation(n)%temperature
END DO
CALL writeGmsh2FooterNodeData(fileMean)
CALL writeGmsh2FooterNodeData(fileDeviation)