Start implemented Zernike FE filter

This commit is contained in:
Paul Romano 2018-01-09 22:35:37 -06:00
parent a6746ab016
commit ac776a5b51
5 changed files with 1293 additions and 2 deletions

View file

@ -430,6 +430,7 @@ set(LIBOPENMC_FORTRAN_SRC
src/tallies/tally_filter_sptl_legendre.F90
src/tallies/tally_filter_surface.F90
src/tallies/tally_filter_universe.F90
src/tallies/tally_filter_zernike.F90
src/tallies/tally_header.F90
src/tallies/trigger.F90
src/tallies/trigger_header.F90

View file

@ -358,7 +358,7 @@ module constants
integer, parameter :: NO_BIN_FOUND = -1
! Tally filter and map types
integer, parameter :: N_FILTER_TYPES = 19
integer, parameter :: N_FILTER_TYPES = 20
integer, parameter :: &
FILTER_UNIVERSE = 1, &
FILTER_MATERIAL = 2, &
@ -378,7 +378,8 @@ module constants
FILTER_MESHSURFACE = 16, &
FILTER_LEGENDRE = 17, &
FILTER_SPH_HARMONICS = 18, &
FILTER_SPTL_LEGENDRE = 19
FILTER_SPTL_LEGENDRE = 19, &
FILTER_ZERNIKE = 20
! Mesh types
integer, parameter :: &

View file

@ -27,6 +27,7 @@ module tally_filter
use tally_filter_sptl_legendre
use tally_filter_surface
use tally_filter_universe
use tally_filter_zernike
implicit none
@ -87,6 +88,8 @@ contains
type_ = 'surface'
type is (UniverseFilter)
type_ = 'universe'
type is (ZernikeFilter)
type_ = 'zernike'
end select
! Convert Fortran string to null-terminated C string. We assume the
@ -164,6 +167,8 @@ contains
allocate(SurfaceFilter :: filters(index) % obj)
case ('universe')
allocate(UniverseFilter :: filters(index) % obj)
case ('zernike')
allocate(ZernikeFilter :: filters(index) % obj)
case default
err = E_UNASSIGNED
call set_errmsg("Unknown filter type: " // trim(type_))

File diff suppressed because it is too large Load diff

View file

@ -362,6 +362,9 @@ contains
type is (SpatialLegendreFilter)
j = FILTER_SPTL_LEGENDRE
this % estimator = ESTIMATOR_COLLISION
type is (ZernikeFilter)
j = FILTER_ZERNIKE
this % estimator = ESTIMATOR_COLLISION
end select
this % find_filter(j) = i
end do