Skip to content
Open
Show file tree
Hide file tree
Changes from 66 commits
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
2f959c6
Create new output module
adrianarce-elemwave Nov 27, 2025
79504b9
Added point probe flush
adrianarce-elemwave Nov 27, 2025
5aa7cf0
Compilation fixes
adrianarce-elemwave Nov 27, 2025
69a4352
Start Init outputs subroutine
adrianarce-elemwave Nov 27, 2025
c8cceb6
Create update structure
adrianarce-elemwave Nov 28, 2025
52c62e9
Added init wire current probes
adrianarce-elemwave Nov 28, 2025
952e981
Separate point probe logic
adrianarce-elemwave Nov 28, 2025
fa14f15
Fix compilation errors
adrianarce-elemwave Nov 28, 2025
99ad834
Create wire current probe output module
adrianarce-elemwave Dec 1, 2025
572b199
Added update wire current logic
adrianarce-elemwave Dec 1, 2025
cec18e3
Added wire_charge_output
adrianarce-elemwave Dec 1, 2025
46643c0
start output tests
adrianarce-elemwave Dec 1, 2025
1520fe6
Fix compilation errors
adrianarce-elemwave Dec 1, 2025
a67c746
Added bulk probe update method
adrianarce-elemwave Dec 2, 2025
bb5f02d
Translate observation utils
adrianarce-elemwave Dec 2, 2025
32ccd20
create volumic probe
adrianarce-elemwave Dec 2, 2025
3459eee
Fix compilation issues from new output utils
adrianarce-elemwave Dec 3, 2025
aae97ce
added material creation utils
adrianarce-elemwave Dec 3, 2025
2560a12
Added eps0 y mu0 to fdetypes utils
adrianarce-elemwave Dec 3, 2025
8be8865
Added observation utils for testing outputs
adrianarce-elemwave Dec 3, 2025
33215ee
WIP Working on tests
adrianarce-elemwave Dec 4, 2025
ff85ef8
fix allocation error on update
adrianarce-elemwave Dec 4, 2025
b432c6e
Finish with point probe tests
adrianarce-elemwave Dec 5, 2025
6596a3d
Added test for volumic probe valid surfaces. Fix error in point probe…
adrianarce-elemwave Dec 9, 2025
ef2ce09
Volumic update refactor
adrianarce-elemwave Dec 10, 2025
b86861f
Reorganize output files
adrianarce-elemwave Dec 10, 2025
53d5c5b
Pack bound coordinates
adrianarce-elemwave Dec 10, 2025
f2b2f0a
Add movie probe output
adrianarce-elemwave Dec 11, 2025
bb90335
Create time movie prove module
adrianarce-elemwave Dec 12, 2025
24480df
Merge branch 'dev' into 236-investigate-and-separate-current-dependen…
adrianarce-elemwave Dec 15, 2025
7bb0ca6
Add movieProbe test structure
adrianarce-elemwave Dec 15, 2025
b4895b8
Disable observation tests
adrianarce-elemwave Dec 15, 2025
7dac316
Major cleanup for test utils
adrianarce-elemwave Dec 15, 2025
387e307
Added test for flushing movie probes
adrianarce-elemwave Dec 16, 2025
ad0e9a6
Add frequency slice probe output
adrianarce-elemwave Dec 16, 2025
58cec2e
Added hook to new frequency slice probe
adrianarce-elemwave Dec 16, 2025
b4c90ef
Added frequency slice output tests
adrianarce-elemwave Dec 17, 2025
6951c75
Added wire and bulk probes flusher methods
adrianarce-elemwave Dec 17, 2025
2ad8792
Merge branch 'dev' into 236-investigate-and-separate-current-dependen…
adrianarce-elemwave Dec 17, 2025
e966e2b
Added ff to outputs
adrianarce-elemwave Dec 18, 2025
fcbe79c
Link output to main workflow. Fixed pointer assigment error
adrianarce-elemwave Dec 18, 2025
0aeb422
Cleanup tests
adrianarce-elemwave Dec 19, 2025
8d04618
Added new cases to movieProbe
adrianarce-elemwave Dec 22, 2025
120282c
Cleanup compilation errors
adrianarce-elemwave Dec 22, 2025
204c55c
Refactor movie probe output
adrianarce-elemwave Dec 23, 2025
def2078
Simplify argument requests
adrianarce-elemwave Dec 23, 2025
1b2c275
Added legend to movie probe
adrianarce-elemwave Dec 23, 2025
0f567ed
Added frequency slice vtk flush
adrianarce-elemwave Jan 7, 2026
de9ffe1
Fix Compilation errors
adrianarce-elemwave Jan 7, 2026
af9d651
Fix update for frequency slices
adrianarce-elemwave Jan 8, 2026
8cb65f2
Disable eliminate unnecesary points. Update output calls
adrianarce-elemwave Jan 8, 2026
e7cbc1b
Adjust test to reduce argument inputs for init, update and flush
adrianarce-elemwave Jan 9, 2026
ea96d56
Added test utils for array assertion and gradient creation
adrianarce-elemwave Jan 9, 2026
f9b62c9
Fix errors on volumic rprobe tests
adrianarce-elemwave Jan 9, 2026
f55d139
Integrate flusher into main workflow
adrianarce-elemwave Jan 9, 2026
219bded
Fix allocation errors
adrianarce-elemwave Jan 12, 2026
15bcc26
Added compilation flags forr newOutput module
adrianarce-elemwave Jan 13, 2026
9d7cc60
Commented subroutines cleanup
adrianarce-elemwave Jan 13, 2026
6e1b319
Wire probes refactor
adrianarce-elemwave Jan 13, 2026
9bca2b9
Movie probe refactor
adrianarce-elemwave Jan 13, 2026
d37cc29
Remove redundacy code from volumic probes
adrianarce-elemwave Jan 13, 2026
44d5693
Moved allocation utils to utils module
adrianarce-elemwave Jan 14, 2026
2a05396
Add volumic utils tests
adrianarce-elemwave Jan 14, 2026
3fa0480
Add new output to ubuntu test actions
adrianarce-elemwave Jan 15, 2026
6341f36
Merge branch 'dev' into 236-investigate-and-separate-current-dependen…
adrianarce-elemwave Jan 15, 2026
82161d1
Removed outputUpdater.F90
adrianarce-elemwave Jan 16, 2026
6812ce4
Aplly requested changes
adrianarce-elemwave Jan 22, 2026
4f8b9a8
Fix compilation error in allocationUtils for RKIND_tiempo
adrianarce-elemwave Jan 23, 2026
d636412
Replace unit info for path references
adrianarce-elemwave Jan 26, 2026
dfa4b10
Implement teardown on point probe tests
adrianarce-elemwave Jan 26, 2026
21835f8
Improve output format. Movie and frequencySlice now are created on th…
adrianarce-elemwave Jan 28, 2026
953505a
[wip] Create wire tests
adrianarce-elemwave Jan 30, 2026
902d7a5
Refactor output handling and add bulk probe observation utils
adrianarce-elemwave Feb 2, 2026
9ccb6fa
Fix | Compilation fix for ubuntu system and intel compiler
adrianarce-elemwave Feb 5, 2026
998cc9c
Merge branch 'dev' into 236-investigate-and-separate-current-dependen…
adrianarce-elemwave Feb 16, 2026
b741415
Extract perform flush field and syncroniceflushflags from solver_run …
adrianarce-elemwave Feb 16, 2026
61ef861
Create logUtils and reduce log logic from timestep
adrianarce-elemwave Feb 16, 2026
d1c8843
added init mtln solver to new output
adrianarce-elemwave Feb 17, 2026
2159a67
Added headers to tests
adrianarce-elemwave Feb 17, 2026
3385786
Add register output files to new output workflow
adrianarce-elemwave Feb 17, 2026
fb299b1
wip
adrianarce-elemwave Feb 17, 2026
0024c66
Fix out of bounds error when checking observation request for old obs…
adrianarce-elemwave Feb 18, 2026
fd04696
Implement mapVTK output functionality and integrate with existing out…
adrianarce-elemwave Feb 19, 2026
8524611
update test_script
adrianarce-elemwave Feb 19, 2026
603d30c
Refactor output initialization and update related functions to separa…
adrianarce-elemwave Feb 19, 2026
ad2fef3
VTKAPI | #236 | Create vtkAPI for mapvtk output as a replacement for …
adrianarce-elemwave Feb 20, 2026
d98a950
Refactor flush handling in timestepping module and improve logging me…
adrianarce-elemwave Feb 24, 2026
697eaf4
Added create unstructure logic
adrianarce-elemwave Feb 24, 2026
4f39216
Refactor VTK output handling to support unstructured grid format and …
adrianarce-elemwave Feb 24, 2026
fd0b261
Recover mapvtk funcionality from old observation module
adrianarce-elemwave Feb 24, 2026
f7b60a2
Refactor output handling and enhance geometry simulation for VTK inte…
adrianarce-elemwave Mar 2, 2026
0003b7d
Create xdmf api
adrianarce-elemwave Mar 3, 2026
f2d2baf
Remove and comment pdv from volumic probes
adrianarce-elemwave Mar 4, 2026
afa2612
working on xdmf api
adrianarce-elemwave Mar 4, 2026
95710ba
Propagate xdmf api to frecuency slices
adrianarce-elemwave Mar 5, 2026
716f1c2
Merge branch 'dev' into 236-investigate-and-separate-current-dependen…
adrianarce-elemwave Mar 5, 2026
693029f
removed unused fdtype utils
adrianarce-elemwave Mar 5, 2026
3f5245e
remove vtkfortran dependency
adrianarce-elemwave Mar 5, 2026
d87c59c
restore output test
adrianarce-elemwave Mar 5, 2026
2a96464
Change h5 format to store 4d array for each requested component
adrianarce-elemwave Mar 12, 2026
e7a22d6
wip
adrianarce-elemwave Mar 16, 2026
fa74984
Merge remote-tracking branch 'origin/dev' into 236-367-update-with-de…
Alberto-o Apr 16, 2026
d8cd4dd
Merge branch 'dev' into 236-367-update-with-dev
Alberto-o Apr 16, 2026
8a66e21
Many changes to sistemize naming of modules and types. Some minors ne…
Alberto-o Apr 17, 2026
26c26d4
Merge pull request #369 from OpenSEMBA/236-367-update-with-dev
Alberto-o Apr 17, 2026
d6e0ed9
All reals are rkind. No need to check for non rkind real comparison
Alberto-o Apr 17, 2026
17fd9cf
Fixes intel compilation. Still tests to fix
Alberto-o Apr 17, 2026
57e7324
Fix for gnu/intel compilation
Alberto-o Apr 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .github/workflows/ubuntu.yml
Comment thread
adrianarce-elemwave marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ jobs:
mtln: ["ON", "OFF"]
hdf: ["ON"]
double-precision: ["OFF"]
new-output-module: ["OFF","ON"]

include:
# Disable by lack of space on github action
Expand Down Expand Up @@ -89,13 +90,15 @@ jobs:
-DSEMBA_FDTD_ENABLE_MPI=${{matrix.mpi}} \
-DSEMBA_FDTD_ENABLE_HDF=${{matrix.hdf}} \
-DSEMBA_FDTD_ENABLE_MTLN=${{matrix.mtln}} \
-DSEMBA_FDTD_ENABLE_DOUBLE_PRECISION=${{matrix.double-precision}}
-DSEMBA_FDTD_ENABLE_DOUBLE_PRECISION=${{matrix.double-precision}} \
-DSEMBA_FDTD_ENABLE_OUTPUT_MODULE=${{matrix.new-output-module}} \
cmake --build build -j

- name: Run unit tests
run: build/bin/fdtd_tests

- name: Run python tests
if: matrix.new-output-module=='No'
env:
SEMBA_FDTD_ENABLE_MPI: ${{ matrix.mpi }}
SEMBA_FDTD_ENABLE_MTLN: ${{ matrix.mtln }}
Expand Down
6 changes: 5 additions & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,8 @@

[submodule "external/googletest"]
path = external/googletest
url = https://github.com/google/googletest.git
url = https://github.com/google/googletest.git

[submodule "external/VTKFortran"]
path = external/VTKFortran
url = https://github.com/szaghi/VTKFortran.git
20 changes: 18 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ option(SEMBA_FDTD_ENABLE_MPI "Use MPI" OFF)
option(SEMBA_FDTD_ENABLE_HDF "Use HDF" ON)
option(SEMBA_FDTD_ENABLE_MTLN "Use MTLN" ON)
option(SEMBA_FDTD_ENABLE_SMBJSON "Use smbjson" ON)
option(SEMBA_FDTD_ENABLE_DOUBLE_PRECISION "Use double precision (CompileWithReal8)" OFF)
option(SEMBA_FDTD_ENABLE_DOUBLE_PRECISION "Use double precision (CompileWithReal8)" ON)

option(SEMBA_FDTD_ENABLE_TEST "Compile tests" ON)

Expand All @@ -27,7 +27,13 @@ option(SEMBA_FDTD_EXECUTABLE "Compiles executable" ON)
option(SEMBA_FDTD_MAIN_LIB "Compiles main library" ON)
option(SEMBA_FDTD_COMPONENTS_LIB "Compiles components library" ON)
option(SEMBA_FDTD_OUTPUTS_LIB "Compiles outputs library" ON)

option(SEMBA_FDTD_ENABLE_OUTPUT_MODULE "Use new output module" OFF)

# Compilation defines.
if(SEMBA_FDTD_ENABLE_OUTPUT_MODULE)
add_definitions(-DCompileWithNewOutputModule)
endif()
if(SEMBA_FDTD_ENABLE_SMBJSON)
add_definitions(-DCompileWithSMBJSON)
endif()
Expand Down Expand Up @@ -186,6 +192,13 @@ if (SEMBA_FDTD_ENABLE_MTLN)
endif()
endif()

add_subdirectory(src_utils)

if (SEMBA_FDTD_ENABLE_OUTPUT_MODULE)
add_subdirectory(external/VTKFortran)
add_subdirectory(src_output)
set(OUTPUT_LIBRARIES fdtd-output)
endif()
add_subdirectory(src_conformal)
set(CONFORMAL_LIBRARIES conformal)

Expand All @@ -194,6 +207,8 @@ if (SEMBA_FDTD_ENABLE_TEST)
add_subdirectory(test)
endif()



if(SEMBA_FDTD_COMPONENTS_LIB)
add_library(semba-components
"src_main_pub/anisotropic.F90"
Expand Down Expand Up @@ -256,7 +271,8 @@ if(SEMBA_FDTD_MAIN_LIB)
"src_main_pub/timestepping.F90"
)
target_link_libraries(semba-main
semba-outputs
semba-outputs
${OUTPUT_LIBRARIES}
${SMBJSON_LIBRARIES}
${MTLN_LIBRARIES})
endif()
Expand Down
1 change: 1 addition & 0 deletions external/VTKFortran
Submodule VTKFortran added at 1b3585
28 changes: 21 additions & 7 deletions src_main_pub/fdetypes.F90
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
module FDETYPES


#ifdef CompileWithOpenMP
use omp_lib
#endif
Expand Down Expand Up @@ -186,6 +185,17 @@ module FDETYPES
integer (kind=4), parameter :: iBloqueJx=100*iEx,iBloqueJy=100*iEy,iBloqueJz=100*iEz
integer (kind=4), parameter :: iBloqueMx=100*iHx,iBloqueMy=100*iHy,iBloqueMz=100*iHz
!
integer (kind=4), parameter :: VOLUMIC_M_MEASURE(3) = [iCur, iMEC, iMHC] !Module
integer (kind=4), parameter :: VOLUMIC_X_MEASURE(3) = [iCurx, iExC, iHxC]
integer (kind=4), parameter :: VOLUMIC_Y_MEASURE(3) = [iCury, iEyC, iHyC]
integer (kind=4), parameter :: VOLUMIC_Z_MEASURE(3) = [iCurz, iEzC, iHzC]

integer (kind=4), parameter :: MAGNETIC_FIELD_DIRECTION(3) = [iEx, iEy, iEz]
integer (kind=4), parameter :: ELECTRIC_FIELD_DIRECTION(3) = [iHx, iHy, iHz]
integer (kind=4), parameter :: CURRENT_MEASURE(4) = [iCur, iCurx, iCury, iCurz]
integer (kind=4), parameter :: ELECTRIC_FIELD_MEASURE(4) = [iMEC, iExC, iEyC, iEzC]
integer (kind=4), parameter :: MAGNETIC_FIELD_MEASURE(4) = [iMHC, iHxC, iHyC, iHzC]
!
CHARACTER (LEN=*), PARAMETER :: SEPARADOR='______________'
integer (kind=4), PARAMETER :: comi=1,fine=2, icoord=1,jcoord=2,kcoord=3

Expand Down Expand Up @@ -585,6 +595,7 @@ module FDETYPES


type :: MediaData_t
integer(kind=SINGLE) :: Id
REAL (KIND=RKIND) :: Priority,Epr,Sigma,Mur,SigmaM
logical :: sigmareasignado !solo afecta a un chequeo de errores en lumped 120123
type (exists_t) :: Is
Expand All @@ -607,15 +618,15 @@ module FDETYPES
REAL (KIND=RKIND_tiempo) :: dt
character (len=BUFSIZE) :: extraswitches
!!
integer (kind=4) :: NumMedia,AllocMed
integer (kind=4) :: IniPMLMedia,EndPMLMedia
integer (kind=4) :: NumPlaneWaves,TimeSteps,InitialTimeStep
integer (kind=4) :: NumNodalSources
integer (kind=4) :: NumberRequest
integer (kind=SINGLE) :: NumMedia,AllocMed
Comment thread
Alberto-o marked this conversation as resolved.
integer (kind=SINGLE) :: IniPMLMedia,EndPMLMedia
integer (kind=SINGLE) :: NumPlaneWaves,TimeSteps,InitialTimeStep
integer (kind=SINGLE) :: NumNodalSources
integer (kind=SINGLE) :: NumberRequest = 0_SINGLE
!!!
REAL (KIND=RKIND) , pointer, dimension ( : ) :: LineX,LineY,LineZ
REAL (KIND=RKIND) , pointer, dimension ( : ) :: DX,DY,DZ
integer (kind=4) :: AllocDxI,AllocDyI,AllocDzI,AllocDxE,AllocDyE,AllocDzE
integer (kind=SINGLE) :: AllocDxI,AllocDyI,AllocDzI,AllocDxE,AllocDyE,AllocDzE
type (planeonde_t), pointer, dimension ( : ) :: PlaneWave
type (Border_t) :: Border
type (PML_t) :: PML
Expand All @@ -632,6 +643,7 @@ module FDETYPES
logical :: thereArePMLMagneticMedia
CHARACTER (LEN=BUFSIZE) :: nEntradaRoot
type (coorsxyzP) :: Punto

end type

type media_matrices_t
Expand Down Expand Up @@ -859,6 +871,8 @@ logical function direction_eq(a,b)
direction_eq = direction_eq .and. (a%orientation == b%orientation)

end function


end module FDETYPES

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Expand Down
78 changes: 74 additions & 4 deletions src_main_pub/timestepping.F90
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ module Solver_mod
use report
use PostProcessing
use Ilumina
#ifdef CompileWithNewOutputModule
use output
use outputTypes
#endif
use Observa
use BORDERS_other
use Borders_CPML
Expand Down Expand Up @@ -1503,10 +1507,13 @@ subroutine initializeObservation()
call MPI_Barrier(SUBCOMM_MPI,ierr)
#endif
write(dubuf,*) 'Init Observation...'; call print11(this%control%layoutnumber,dubuf)
#ifdef CompileWithNewOutputModule
call init_outputs(this%sgg, this%media, this%sinPML_fullsize, this%bounds, this%control, this%thereAre%Observation, this%thereAre%wires)
#else
call InitObservation (this%sgg,this%media,this%tag_numbers, &
this%thereAre%Observation,this%thereAre%wires,this%thereAre%FarFields,this%initialtimestep,this%lastexecutedtime, &
this%sinPML_fullsize,this%eps0,this%mu0,this%bounds, this%control)

#endif
l_auxinput=this%thereAre%Observation.or.this%thereAre%FarFields
l_auxoutput=l_auxinput

Expand Down Expand Up @@ -1772,6 +1779,10 @@ subroutine solver_run(this)
real(kind=rkind), pointer, dimension (:,:,:) :: Ex, Ey, Ez, Hx, Hy, Hz
real(kind=rkind), pointer, dimension (:) :: Idxe, Idye, Idze, Idxh, Idyh, Idzh, dxe, dye, dze, dxh, dyh, dzh

#ifdef CompileWithNewOutputModule
type(fields_reference_t) :: fieldReference
#endif

logical :: call_timing, l_aux, flushFF, somethingdone, newsomethingdone
integer :: i
real (kind=rkind) :: pscale_alpha
Expand All @@ -1797,6 +1808,23 @@ subroutine solver_run(this)

Idxe => this%Idxe; Idye => this%Idye; Idze => this%Idze; Idxh => this%Idxh; Idyh => this%Idyh; Idzh => this%Idzh; dxe => this%dxe; dye => this%dye; dze => this%dze; dxh => this%dxh; dyh => this%dyh; dzh => this%dzh

#ifdef CompileWithNewOutputModule
fieldReference%E%x => this%Ex
fieldReference%E%y => this%Ey
fieldReference%E%z => this%Ez

fieldReference%E%deltax => this%dxe
fieldReference%E%deltay => this%dye
fieldReference%E%deltaz => this%dze

fieldReference%H%x => this%Hx
fieldReference%H%y => this%Hy
fieldReference%H%z => this%Hz

fieldReference%H%deltax => this%dxh
fieldReference%H%deltay => this%dyh
fieldReference%H%deltaz => this%dzh
#endif

ciclo_temporal : DO while (this%n <= this%control%finaltimestep)

Expand Down Expand Up @@ -1872,9 +1900,11 @@ subroutine solver_run(this)
call print11(this%control%layoutnumber,SEPARADOR//separador//separador)
call print11(this%control%layoutnumber,dubuf)
call print11(this%control%layoutnumber,SEPARADOR//separador//separador)
!!
#ifdef CompileWithNewOutputModule
if (this%thereAre%Observation) call flush_outputs(this%sgg%tiempo, this%n, this%control, fieldReference, this%bounds, flushFF)
#else
if (this%thereAre%Observation) call FlushObservationFiles(this%sgg,this%ini_save, this%n,this%control%layoutnumber, this%control%size, dxe, dye, dze, dxh, dyh, dzh,this%bounds,this%control%singlefilewrite,this%control%facesNF2FF,flushFF)
!!
#endif
#ifdef CompileWithMPI
call MPI_Barrier(SUBCOMM_MPI,ierr)
#endif
Expand Down Expand Up @@ -2023,11 +2053,21 @@ subroutine solver_run(this)
subroutine updateAndFlush()
integer(kind=4) :: mindum
IF (this%thereAre%Observation) then
#ifdef CompileWithNewOutputModule
if (this%n /= 0) then
call update_outputs(this%control, this%sgg%tiempo, this%n, fieldReference)
if (this%n>=this%ini_save+BuffObse) then
mindum=min(this%control%finaltimestep,this%ini_save+BuffObse)
call flush_outputs(this%sgg%tiempo, this%n, this%control, fieldReference, this%bounds, .FALSE.)
endif
end if
#else
call UpdateObservation(this%sgg,this%media,this%tag_numbers, this%n,this%ini_save, Ex, Ey, Ez, Hx, Hy, Hz, dxe, dye, dze, dxh, dyh, dzh,this%control%wiresflavor,this%sinPML_fullsize,this%control%wirecrank, this%control%noconformalmapvtk,this%bounds)
if (this%n>=this%ini_save+BuffObse) then
mindum=min(this%control%finaltimestep,this%ini_save+BuffObse)
call FlushObservationFiles(this%sgg,this%ini_save,mindum,this%control%layoutnumber,this%control%size, dxe, dye, dze, dxh, dyh, dzh,this%bounds,this%control%singlefilewrite,this%control%facesNF2FF,.FALSE.) !no se flushean los farfields ahora
endif
#endif
endif
end subroutine

Expand Down Expand Up @@ -2726,12 +2766,35 @@ subroutine solver_end(this)
logical :: dummylog, somethingdone, newsomethingdone
character(len=bufsize) :: dubuf

#ifdef CompileWithNewOutputModule
type(fields_reference_t) :: fieldReference
#endif


#ifdef CompileWithMPI
integer (kind=4) :: ierr
#endif
Ex => this%Ex; Ey => this%Ey; Ez => this%Ez; Hx => this%Hx; Hy => this%Hy; Hz => this%Hz;
dxe => this%dxe; dye => this%dye; dze => this%dze; dxh => this%dxh; dyh => this%dyh; dzh => this%dzh

#ifdef CompileWithNewOutputModule
fieldReference%E%x => this%Ex
fieldReference%E%y => this%Ey
fieldReference%E%z => this%Ez

fieldReference%E%deltax => this%dxe
fieldReference%E%deltay => this%dye
fieldReference%E%deltaz => this%dze

fieldReference%H%x => this%Hx
fieldReference%H%y => this%Hy
fieldReference%H%z => this%Hz

fieldReference%H%deltax => this%dxh
fieldReference%H%deltay => this%dyh
fieldReference%H%deltaz => this%dzh
#endif

#ifdef CompileWithProfiling
call nvtxEndRange
#endif
Expand Down Expand Up @@ -2777,8 +2840,12 @@ subroutine solver_end(this)
call print11(this%control%layoutnumber,dubuf)
call print11(this%control%layoutnumber,SEPARADOR//separador//separador)
if (this%thereAre%Observation) THEN
#ifdef CompileWithNewOutputModule
call flush_outputs(this%sgg%tiempo, this%n, this%control, fieldReference, this%bounds, .TRUE.)
#else
call FlushObservationFiles(this%sgg,this%ini_save, this%n,this%control%layoutnumber, this%control%size, dxe, dye, dze, dxh, dyh, dzh,this%bounds,this%control%singlefilewrite,this%control%facesNF2FF,.TRUE.)
call CloseObservationFiles(this%sgg,this%control%layoutnumber,this%control%size,this%control%singlefilewrite,this%initialtimestep,this%lastexecutedtime,this%control%resume) !dump the remaining to disk
#endif
#ifdef CompileWithMTLN
if (this%control%use_mtln_wires) then
call FlushMTLNObservationFiles(this%control%nentradaroot, mtlnProblem = .false.)
Expand All @@ -2799,13 +2866,17 @@ subroutine solver_end(this)
call MPI_Barrier(SUBCOMM_MPI,ierr)
#endif

#ifdef CompileWithNewOutputModule
#else

write(dubuf,'(a,i9)') 'INIT FINAL Postprocessing frequency domain probes, if any, at n= ',this%n
call print11(this%control%layoutnumber,dubuf)
write(dubuf,*) SEPARADOR//separador//separador
call print11(this%control%layoutnumber,dubuf)
somethingdone=.false.
at=this%n*this%sgg%dt
if (this%thereAre%Observation) call PostProcess(this%control%layoutnumber,this%control%size,this%sgg,this%control%nentradaroot,at,somethingdone,this%control%niapapostprocess,this%control%forceresampled)
#endif
#ifdef CompileWithMPI
call MPI_Barrier(SUBCOMM_MPI,ierr)
call MPI_AllReduce(somethingdone, newsomethingdone, 1_4, MPI_LOGICAL, MPI_LOR, SUBCOMM_MPI, ierr)
Expand All @@ -2831,7 +2902,6 @@ subroutine solver_end(this)
somethingdone=.false.

if (this%thereAre%Observation) call createvtk(this%control%layoutnumber,this%control%size,this%sgg,this%control%vtkindex,somethingdone,this%control%mpidir,this%media%sggMtag,this%control%dontwritevtk)

#ifdef CompileWithMPI
call MPI_Barrier(SUBCOMM_MPI,ierr)
call MPI_AllReduce(somethingdone, newsomethingdone, 1_4, MPI_LOGICAL, MPI_LOR, SUBCOMM_MPI, ierr)
Expand Down
19 changes: 19 additions & 0 deletions src_output/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
add_library(fdtd-output
"output.F90"
"outputTypes.F90"
"domain.F90"
"outputUtils.F90"
"volumicProbeUtils.F90"
"pointProbeOutput.F90"
"wireProbeOutput.F90"
"bulkProbeOutput.F90"
"movieProbeOutput.F90"
"frequencySliceProbeOutput.F90"
"farFieldProbeOutput.F90"
)
target_link_libraries(fdtd-output
semba-types
semba-components
fdtd-utils
VTKFortran::VTKFortran
)
Loading
Loading