Initialization of the Logging
NOTE: Opens and writes to a csv file named in the style of logMinimizer_*
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(t_minimizer_mhd3d), | intent(inout) | :: | sf |
minimizer |
SUBROUTINE StartLogging_MHD3D(sf) ! MODULES USE MODgvec_Globals, ONLY: GETFREEUNIT USE MODgvec_Output_Vars, ONLY: ProjectName,outputLevel USE MODgvec_MHD3D_visu, ONLY: checkPos IMPLICIT NONE !------------------------------------------------------------------------------------------------------------------------------- ! INPUT VARIABLES CLASS(t_minimizer_mhd3d), INTENT(INOUT) :: sf !! minimizer !------------------------------------------------------------------------------------------------------------------------------- ! OUTPUT VARIABLES !------------------------------------------------------------------------------------------------------------------------------- ! LOCAL VARIABLES CHARACTER(LEN=255) :: fileString !! filename INTEGER :: TimeArray(8),iLogDat REAL(wp) :: Pos(2,2),W_MHD3D INTEGER,PARAMETER :: nLogDat=25 REAL(wp) :: LogDat(1:nLogDat) !================================================================================================================================= IF(.NOT.MPIroot) RETURN __PERFON('log_output') ASSOCIATE(vars=>sf%vars) W_MHD3D=vars%dofs(0)%W_MHD3D CALL DATE_AND_TIME(values=TimeArray) ! get System time WRITE(UNIT_stdOut,'(A,E11.4,A)')'%%%%% START ITERATION, dt= ',vars%dt, ' %%%%%%%%%%%%%%%%%' WRITE(UNIT_stdOut,'(A,I4.2,"-",I2.2,"-",I2.2,1X,I2.2,":",I2.2,":",I2.2)') & '%% Sys date : ',timeArray(1:3),timeArray(5:7) WRITE(UNIT_stdOut,'(A,3E21.14)') & '%% dU = |Force|= ',vars%Fnorm(1:3) SELECT TYPE(vars) TYPE IS (t_accelerated_gradient_descent_vars) WRITE(UNIT_stdOut,'(A,E11.4,A,3E11.4)') & '%% accel.GD: tau= ',vars%tau_bar,' |vel|= ',vars%Vnorm(1:3) END SELECT WRITE(UNIT_stdOut,'(40(" -"))') !------------------------------------ vars%StartTimeArray=TimeArray !save first time stamp vars%logUnit=GETFREEUNIT() WRITE(FileString,'("logMinimizer_",A,"_",I4.4,".csv")')TRIM(ProjectName),outputLevel OPEN(UNIT = vars%logUnit ,& FILE = TRIM(FileString) ,& STATUS = 'REPLACE' ,& ACCESS = 'SEQUENTIAL' ) !header iLogDat=0 WRITE(vars%logUnit,'(A)',ADVANCE="NO")'"#iterations","runtime(s)","min_dt","max_dt"' WRITE(vars%logUnit,'(A)',ADVANCE="NO")',"W_MHD3D","min_dW","max_dW","sum_dW"' WRITE(vars%logUnit,'(A)',ADVANCE="NO")',"normF_X1","normF_X2","normF_LA"' LogDat(ilogDat+1:iLogDat+11)=(/0.0_wp,0.0_wp,vars%dt,vars%dt,W_MHD3D,0.0_wp,0.0_wp,0.0_wp,vars%Fnorm(1:3)/) iLogDat=11 SELECT TYPE(vars) TYPE IS (t_accelerated_gradient_descent_vars) WRITE(vars%logUnit,'(A)',ADVANCE="NO")',"tau","normV_X1","normV_X2","normV_LA"' LogDat(ilogDat+1:iLogDat+4)=(/vars%tau_bar,vars%Vnorm(1:3)/) iLogDat=iLogDat+4 END SELECT IF(vars%doCheckDistance) THEN WRITE(vars%logUnit,'(A)',ADVANCE="NO")',"max_Dist","avg_Dist"' LogDat(iLogDat+1:iLogDat+2)=(/0.0_wp,0.0_wp/) iLogDat=iLogDat+2 END IF!doCheckDistance IF(vars%doCheckAxis) THEN WRITE(vars%logUnit,'(A)',ADVANCE="NO")',"X1_axis_0","X2_axis_0","X1_axis_1","X2_axis_1"' CALL CheckPos(vars%dofs(0),0.0_wp,2,Pos) LogDat(iLogDat+1:iLogDat+4)=RESHAPE(Pos,(/4/)) iLogDat=iLogDat+4 END IF!doCheckAxis WRITE(vars%logUnit,'(A)')' ' !first data line WRITE(vars%logUnit,'(*(e23.15,:,","))') logDat(1:iLogDat) vars%logger_is_initialized = .TRUE. END ASSOCIATE !vars __PERFOFF('log_output') END SUBROUTINE StartLogging_MHD3D