fpakc/src/modules/mesh/inout/0D/moduleMeshOutput0D.f90

85 lines
3 KiB
Fortran

MODULE moduleMeshOutput0D
CONTAINS
SUBROUTINE printOutput0D(self)
USE moduleMesh
USE moduleRefParam
USE moduleSpecies
USE moduleOutput
USE moduleCaseParam, ONLY: timeStep
IMPLICIT NONE
CLASS(meshParticles), INTENT(in):: self
INTEGER:: i
TYPE(outputFormat):: output
CHARACTER(:), ALLOCATABLE:: fileName
DO i = 1, nSpecies
fileName = formatFileName('Output', species(i)%obj%name, 'csv')
IF (timeStep == 0) THEN
OPEN(20, file = generateFilePath(fileName), action = 'write')
WRITE(20, "(*("//fmtColStr//"))")'"t (s)"','"density (m^-3)"', &
'"velocity (m/s):0"', '"velocity (m/s):1"', '"velocity (m/s):2"', &
'"pressure (Pa)"', &
'"temperature (K)"'
call informFileCreation(fileName)
CLOSE(20)
END IF
OPEN(20, file = generateFilePath(fileName), position = 'append', action = 'write')
CALL calculateOutput(self%nodes(1)%obj%output(i), output, self%nodes(1)%obj%v, species(i)%obj)
WRITE(20, "(*("//fmtColReal//"))") REAL(timeStep)*tauMin*ti_ref, output%density, &
output%velocity, &
output%pressure, &
output%temperature
CLOSE(20)
END DO
END SUBROUTINE printOutput0D
SUBROUTINE printColl0D(self)
USE moduleMesh
USE moduleRefParam
USE moduleCaseParam
USE moduleCollisions
USE moduleOutput
IMPLICIT NONE
CLASS(meshGeneric), INTENT(in):: self
CHARACTER(:), ALLOCATABLE:: fileName
INTEGER:: k
fileName = formatFileName('Output', 'Collisions', 'csv')
IF (timeStep == tInitial) THEN
OPEN(20, file = generateFilePath(fileName), action = 'write')
call informFileCreation(fileName)
WRITE(20, "(A,A)", advance='no') "t (s)", ','
do k = 1, nCollPairs-1
write(20, '(A,A,I3,A,A)', advance='no') '"',"pair", k, '"', ','
end do
write(20, "(A,A,I3,A)", advance='no') '"',"pair",k, '"'
CLOSE(20)
END IF
OPEN(20, file = generateFilePath(fileName), position = 'append', action = 'write')
WRITE(20, "("//fmtColReal//", *("//fmtColInt//"))") REAL(timeStep)*tauMin*ti_ref, (self%cells(1)%obj%tallyColl(k)%tally, k=1,nCollPairs)
CLOSE(20)
END SUBROUTINE printColl0D
SUBROUTINE printEM0D(self)
USE moduleMesh
USE moduleRefParam
USE moduleCaseParam
USE moduleOutput
IMPLICIT NONE
CLASS(meshParticles), INTENT(in):: self
END SUBROUTINE printEM0D
END MODULE moduleMeshOutput0D