diff --git a/doc/user-manual/fpakc_UserManual.pdf b/doc/user-manual/fpakc_UserManual.pdf index 3f86031..6e8bb61 100644 Binary files a/doc/user-manual/fpakc_UserManual.pdf and b/doc/user-manual/fpakc_UserManual.pdf differ diff --git a/doc/user-manual/fpakc_UserManual.tex b/doc/user-manual/fpakc_UserManual.tex index c2dfd9e..b1dd6dd 100644 --- a/doc/user-manual/fpakc_UserManual.tex +++ b/doc/user-manual/fpakc_UserManual.tex @@ -398,6 +398,9 @@ make Trigger between writings is the same as in \textbf{triggerOutput}. \item \textbf{EMField}: Logical. Determines if the electromagnetic field is printed. + \item \textbf{bounraiesParticle}: Logical. + Determines if the properties of the boundaries are written. + \textit{Warning}: Not all particle models produce this output, only those whose properties change during the simulation. \item \textbf{probes}: Array of objects. Defines the probes employed for obtaining the distribution function at specific positions. See Sec.~\ref{sec:probing} for more information. diff --git a/src/modules/init/moduleInput.f90 b/src/modules/init/moduleInput.f90 index 6dac14c..80b6d2d 100644 --- a/src/modules/init/moduleInput.f90 +++ b/src/modules/init/moduleInput.f90 @@ -492,7 +492,7 @@ MODULE moduleInput CALL config%get(object // '.cpuTime', timeOutput, found) CALL config%get(object // '.numColl', collOutput, found) CALL config%get(object // '.EMField', emOutput, found) - call config%get(object // '.boundaryParticle', boundaryParticleOutput, found) + call config%get(object // '.boundariesParticle', boundaryParticleOutput, found) CALL config%get(object // '.triggerCPUTime', triggerCPUTime, found) IF (.NOT. found) THEN diff --git a/src/modules/mesh/inout/0D/moduleMeshOutput0D.f90 b/src/modules/mesh/inout/0D/moduleMeshOutput0D.f90 index cf830a6..1c2db4a 100644 --- a/src/modules/mesh/inout/0D/moduleMeshOutput0D.f90 +++ b/src/modules/mesh/inout/0D/moduleMeshOutput0D.f90 @@ -50,7 +50,6 @@ MODULE moduleMeshOutput0D CLASS(meshGeneric), INTENT(in):: self CHARACTER(:), ALLOCATABLE:: fileName INTEGER:: k - character(:), allocatable:: kString fileName = formatFileName('Output', 'Collisions', 'csv') IF (timeStep == tInitial) THEN diff --git a/src/modules/mesh/inout/vtu/moduleMeshOutputVTU.f90 b/src/modules/mesh/inout/vtu/moduleMeshOutputVTU.f90 index 4f986c5..3462940 100644 --- a/src/modules/mesh/inout/vtu/moduleMeshOutputVTU.f90 +++ b/src/modules/mesh/inout/vtu/moduleMeshOutputVTU.f90 @@ -230,17 +230,16 @@ MODULE moduleMeshOutputVTU OPEN (fileID + 1, file = generateFilePath(fileNameCollection)) WRITE (fileID + 1, "(A)") '' WRITE (fileID + 1, "(2X, A)") '' - CLOSE(fileID + 1) else + OPEN (fileID + 1, file = generateFilePath(fileNameCollection), ACCESS='APPEND') ! Append removing the last two lines that close the - rewind(fileID) - rewind(fileID) + backspace(fileID + 1) + backspace(fileID + 1) END IF !Write iteration file in collection - OPEN (fileID + 1, file = generateFilePath(fileNameCollection), ACCESS='APPEND') WRITE(fileID + 1, "(4X, A, "//fmtReal//", A, A, A)") & '' diff --git a/src/modules/output/moduleOutput.f90 b/src/modules/output/moduleOutput.f90 index ad1f5f3..cc2a08c 100644 --- a/src/modules/output/moduleOutput.f90 +++ b/src/modules/output/moduleOutput.f90 @@ -34,6 +34,7 @@ MODULE moduleOutput integer, parameter:: fileID_boundaryParticle = 30 ! Particle boundaries integer, parameter:: fileID_boundaryEM = 31 ! EM boundaries integer, parameter:: fileID_reference = 40 ! Reference values + integer, parameter:: fileID_time =50 ! Computation time !Output for each node TYPE, PUBLIC:: outputNode @@ -243,7 +244,7 @@ MODULE moduleOutput END SUBROUTINE calculateOutput - SUBROUTINE printTime(first) + SUBROUTINE writeTime(first) USE moduleSpecies USE moduleCompTime USE moduleCaseParam, ONLY: timeStep @@ -252,31 +253,31 @@ MODULE moduleOutput LOGICAL, INTENT(in), OPTIONAL:: first CHARACTER(:), ALLOCATABLE:: fileName - fileName = 'cpuTime.dat' + fileName = 'cpuTime.csv' IF (timeOutput) THEN IF (PRESENT(first)) THEN IF (first) THEN - OPEN(20, file = generateFilePath(fileName), action = 'write') - WRITE(20, "(A1, 8X, A1, 9X, A1, 7(A20))") "#","t","n","total (s)","push (s)","reset (s)", & - "collision (s)","coulomb (s)", & - "weighting (s)","EMField (s)" + OPEN(fileID_time, file = generateFilePath(fileName), action = 'write') + WRITE(fileID_time, "(*("//fmtColStr//"))") "t","n","total (s)","push (s)","reset (s)", & + "collision (s)","coulomb (s)", & + "weighting (s)","EMField (s)" call informFileCreation(fileName) - CLOSE(20) + CLOSE(fileID_time) END IF END IF - OPEN(20, file = generateFilePath(fileName), position = 'append', action = 'write') + OPEN(fileID_time, file = generateFilePath(fileName), position = 'append', action = 'write') - WRITE (20, "(I10, I10, 7(ES20.6E3))") timeStep, nPartOld, tStep, tPush, tReset, tColl, tCoul, tWeight, tEMField + WRITE (fileID_time, "(*("//fmtColInt//"),*("//fmtColReal//"))") timeStep, nPartOld, tStep, tPush, tReset, tColl, tCoul, tWeight, tEMField - CLOSE(20) + CLOSE(fileID_time) END IF - END SUBROUTINE printTime + END SUBROUTINE writeTime ! Write file with reference values subroutine writeReference() diff --git a/src/modules/solver/moduleSolver.f90 b/src/modules/solver/moduleSolver.f90 index ccea2d7..ed566e9 100644 --- a/src/modules/solver/moduleSolver.f90 +++ b/src/modules/solver/moduleSolver.f90 @@ -564,7 +564,7 @@ MODULE moduleSolver !Reset CPU Time counter counterCPUTime = 0 - CALL printTime(timeStep == 0) + CALL writeTime(timeStep == 0) END IF