Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 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
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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There must some problem with the yml, because ubuntu tests are failiing at the cmake point

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
28 changes: 26 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,21 @@ 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 (CMAKE_SYSTEM_NAME STREQUAL "Windows")
add_compile_definitions(_WIN32)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
add_compile_definitions(__APPLE__)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
add_compile_definitions(__linux__)
endif()

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 +200,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 +215,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 +279,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
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