Rename of procedures in boundaries

This commit is contained in:
Jorge Gonzalez 2026-03-14 20:28:03 +01:00
commit 818f9fe37b
3 changed files with 61 additions and 55 deletions

View file

@ -864,7 +864,7 @@ MODULE moduleInput
CALL config%get(object // '.specificHeat', cw, found)
IF (.NOT. found) CALL criticalError("specificHeat not found for wallTemperature boundary type", 'readBoundary')
CALL initWallTemperature(bound, Tw, cw)
CALL wallTemperature_init(bound, Tw, cw)
CASE('ionization')
!Neutral parameters
@ -882,10 +882,10 @@ MODULE moduleInput
CALL config%get(object // '.electronSecondary', electronSecondary, found)
IF (found) THEN
electronSecondaryID = speciesName2Index(electronSecondary)
CALL initIonization(bound, me/m_ref, m0, n0, v0, T0, &
CALL ionization_init(bound, me/m_ref, m0, n0, v0, T0, &
speciesID, effTime, crossSection, eThreshold, electronSecondaryID)
ELSE
CALL initIonization(bound, me/m_ref, m0, n0, v0, T0, &
CALL ionization_init(bound, me/m_ref, m0, n0, v0, T0, &
speciesID, effTime, crossSection, eThreshold)
END IF

View file

@ -664,13 +664,15 @@ MODULE moduleMesh
end type boundaryParticleGeneric
interface
module subroutine initWallTemperature(boundary, T, c)
! Init interfaces
! wallTemeprature
module subroutine wallTemperature_init(boundary, T, c)
CLASS(boundaryParticleGeneric), ALLOCATABLE, INTENT(inout):: boundary
REAL(8), INTENT(in):: T, c !Wall temperature and specific heat
end subroutine initWallTemperature
end subroutine wallTemperature_init
module subroutine initIonization(boundary, mImpact, m0, n0, v0, T0, ion, effTime, crossSection, eThreshold, electronSecondary)
module subroutine ionization_init(boundary, mImpact, m0, n0, v0, T0, ion, effTime, crossSection, eThreshold, electronSecondary)
class(boundaryParticleGeneric), allocatable, intent(inout):: boundary
real(8), intent(in):: mImpact
real(8), intent(in):: m0, n0, v0(1:3), T0 !Neutral properties
@ -680,20 +682,23 @@ MODULE moduleMesh
real(8), intent(in):: eThreshold
integer, optional, intent(in):: electronSecondary
end subroutine initIonization
end subroutine ionization_init
! quasiNeutrality
module subroutine quasiNeutrality_init(boundary, s_incident)
class(boundaryParticleGeneric), allocatable, intent(inout):: boundary
integer, intent(in):: s_incident
end subroutine quasiNeutrality_init
! outflowAdaptive
module subroutine outflowAdaptive_init(boundary, s_incident)
class(boundaryParticleGeneric), allocatable, intent(inout):: boundary
integer, intent(in):: s_incident
end subroutine outflowAdaptive_init
! Get the index of the species from its name
module function boundaryParticleName_to_Index(boundaryName) result(bp)
character(:), allocatable:: boundaryName
integer:: bp
@ -703,6 +708,7 @@ MODULE moduleMesh
end interface
abstract interface
! Apply the effects of the boundary to the particle
subroutine applyParticle_interface(self, edge, part)
use moduleSpecies
import boundaryParticleGeneric, meshEdge
@ -721,7 +727,7 @@ MODULE moduleMesh
end subroutine updateParticle_interface
! Update the values of the particle boundary model
! Write the values of the particle boundary model
subroutine printParticle_interface(self, fileID)
import boundaryParticleGeneric
@ -735,28 +741,28 @@ MODULE moduleMesh
!Reflecting boundary
TYPE, PUBLIC, EXTENDS(boundaryParticleGeneric):: boundaryReflection
CONTAINS
procedure, pass:: apply => reflection
procedure, pass:: apply => reflection_apply
END TYPE boundaryReflection
!Absorption boundary
TYPE, PUBLIC, EXTENDS(boundaryParticleGeneric):: boundaryAbsorption
CONTAINS
procedure, pass:: apply => absorption
procedure, pass:: apply => absorption_apply
END TYPE boundaryAbsorption
!Transparent boundary
TYPE, PUBLIC, EXTENDS(boundaryParticleGeneric):: boundaryTransparent
CONTAINS
procedure, pass:: apply => transparent
procedure, pass:: apply => transparent_apply
END TYPE boundaryTransparent
!Symmetry axis
TYPE, PUBLIC, EXTENDS(boundaryParticleGeneric):: boundaryAxis
CONTAINS
procedure, pass:: apply => symmetryAxis
procedure, pass:: apply => symmetryAxis_apply
END TYPE boundaryAxis
@ -765,7 +771,7 @@ MODULE moduleMesh
!Thermal velocity of the wall: square root(Wall temperature X specific heat)
REAL(8):: vTh
CONTAINS
procedure, pass:: apply => wallTemperature
procedure, pass:: apply => wallTemperature_apply
END TYPE boundaryWallTemperature
@ -781,7 +787,7 @@ MODULE moduleMesh
integer:: tally
integer(KIND=OMP_LOCK_KIND):: tally_lock
CONTAINS
procedure, pass:: apply => ionization
procedure, pass:: apply => ionization_apply
END TYPE boundaryIonization
@ -791,7 +797,7 @@ MODULE moduleMesh
integer:: s_incident ! species index of the incident species
type(meshEdgePointer), allocatable:: edges(:) !Array with edges
contains
procedure, pass:: apply => quasiNeutrality
procedure, pass:: apply => quasiNeutrality_apply
end type boundaryQuasiNeutrality
@ -801,82 +807,82 @@ MODULE moduleMesh
integer:: s_incident ! species index of the incident species
type(meshEdgePointer), allocatable:: edges(:) !Array with edges
contains
procedure, pass:: apply => outflowAdaptive
procedure, pass:: apply => outflowAdaptive_apply
end type boundaryOutflowAdaptive
interface
module subroutine reflection(self, edge, part)
module subroutine reflection_apply(self, edge, part)
use moduleSpecies
class(boundaryReflection), intent(inout):: self
class(meshEdge), intent(inout):: edge
class(particle), intent(inout):: part
end subroutine reflection
end subroutine reflection_apply
module subroutine absorption(self, edge, part)
module subroutine absorption_apply(self, edge, part)
use moduleSpecies
class(boundaryAbsorption), intent(inout):: self
class(meshEdge), intent(inout):: edge
class(particle), intent(inout):: part
end subroutine absorption
end subroutine absorption_apply
module subroutine transparent(self, edge, part)
module subroutine transparent_apply(self, edge, part)
use moduleSpecies
class(boundaryTransparent), intent(inout):: self
class(meshEdge), intent(inout):: edge
class(particle), intent(inout):: part
end subroutine transparent
end subroutine transparent_apply
module subroutine symmetryAxis(self, edge, part)
module subroutine symmetryAxis_apply(self, edge, part)
use moduleSpecies
class(boundaryAxis), intent(inout):: self
class(meshEdge), intent(inout):: edge
class(particle), intent(inout):: part
end subroutine symmetryAxis
end subroutine symmetryAxis_apply
module subroutine wallTemperature(self, edge, part)
module subroutine wallTemperature_apply(self, edge, part)
use moduleSpecies
class(boundaryWallTemperature), intent(inout):: self
class(meshEdge), intent(inout):: edge
class(particle), intent(inout):: part
end subroutine wallTemperature
end subroutine wallTemperature_apply
module subroutine ionization(self, edge, part)
module subroutine ionization_apply(self, edge, part)
use moduleSpecies
class(boundaryIonization), intent(inout):: self
class(meshEdge), intent(inout):: edge
class(particle), intent(inout):: part
end subroutine ionization
end subroutine ionization_apply
module subroutine quasiNeutrality(self, edge, part)
module subroutine quasiNeutrality_apply(self, edge, part)
use moduleSpecies
class(boundaryQuasiNeutrality), intent(inout):: self
class(meshEdge), intent(inout):: edge
class(particle), intent(inout):: part
end subroutine quasiNeutrality
end subroutine quasiNeutrality_apply
module subroutine outflowAdaptive(self, edge, part)
module subroutine outflowAdaptive_apply(self, edge, part)
use moduleSpecies
class(boundaryOutflowAdaptive), intent(inout):: self
class(meshEdge), intent(inout):: edge
class(particle), intent(inout):: part
end subroutine outflowAdaptive
end subroutine outflowAdaptive_apply
! Generic basic boundary conditions to use internally in the code
module subroutine genericReflection(edge, part)

View file

@ -26,7 +26,7 @@ submodule(moduleMesh) boundaryParticle
end function boundaryParticleName_to_Index
module SUBROUTINE reflection(self, edge, part)
module SUBROUTINE reflection_apply(self, edge, part)
USE moduleCaseParam
USE moduleSpecies
IMPLICIT NONE
@ -50,10 +50,10 @@ submodule(moduleMesh) boundaryParticle
!particle is assumed to be inside
part%n_in = .TRUE.
END SUBROUTINE reflection
END SUBROUTINE reflection_apply
!Absoption in a surface
module SUBROUTINE absorption(self, edge, part)
module SUBROUTINE absorption_apply(self, edge, part)
USE moduleCaseParam
USE moduleSpecies
IMPLICIT NONE
@ -87,10 +87,10 @@ submodule(moduleMesh) boundaryParticle
END IF
END SUBROUTINE absorption
END SUBROUTINE absorption_apply
!Transparent boundary condition
module SUBROUTINE transparent(self, edge, part)
module SUBROUTINE transparent_apply(self, edge, part)
USE moduleSpecies
IMPLICIT NONE
@ -101,12 +101,12 @@ submodule(moduleMesh) boundaryParticle
!Removes particle from domain
part%n_in = .FALSE.
END SUBROUTINE transparent
END SUBROUTINE transparent_apply
!Symmetry axis. Reflects particles.
!Although this function should never be called, it is set as a reflective boundary
!to properly deal with possible particles reaching a corner and selecting this boundary.
module SUBROUTINE symmetryAxis(self, edge, part)
module SUBROUTINE symmetryAxis_apply(self, edge, part)
USE moduleSpecies
IMPLICIT NONE
@ -116,12 +116,12 @@ submodule(moduleMesh) boundaryParticle
CALL genericReflection(edge, part)
END SUBROUTINE symmetryAxis
END SUBROUTINE symmetryAxis_apply
! wallTemperature
! During the collision, the boundary transfers part of the energy to the incident particle
! Init
module SUBROUTINE initWallTemperature(boundary, T, c)
module SUBROUTINE wallTemperature_init(boundary, T, c)
USE moduleRefParam
IMPLICIT NONE
@ -138,10 +138,10 @@ submodule(moduleMesh) boundaryParticle
end select
END SUBROUTINE initWallTemperature
END SUBROUTINE wallTemperature_init
! Apply
module SUBROUTINE wallTemperature(self, edge, part)
module SUBROUTINE wallTemperature_apply(self, edge, part)
USE moduleSpecies
USE moduleRandom
IMPLICIT NONE
@ -159,12 +159,12 @@ submodule(moduleMesh) boundaryParticle
CALL genericReflection(edge, part)
END SUBROUTINE wallTemperature
END SUBROUTINE wallTemperature_apply
! ionization
! An electron will pass through the surface and create a series of ion-electron pairs based on a neutral background
!init
module SUBROUTINE initIonization(boundary, mImpact, m0, n0, v0, T0, ion, effTime, crossSection, eThreshold, electronSecondary)
module SUBROUTINE ionization_init(boundary, mImpact, m0, n0, v0, T0, ion, effTime, crossSection, eThreshold, electronSecondary)
use moduleRefParam
use moduleSpecies
use moduleCaseParam
@ -212,7 +212,7 @@ submodule(moduleMesh) boundaryParticle
boundary%eThreshold = eThreshold*eV2J/(m_ref*v_ref**2)
boundary%deltaV = DSQRT(boundary%eThreshold/mImpact)
boundary%update => ionization_resetTally
boundary%update => ionization_update
boundary%print => ionization_print
boundary%tally = 0
@ -220,10 +220,10 @@ submodule(moduleMesh) boundaryParticle
END SELECT
END SUBROUTINE initIonization
END SUBROUTINE ionization_init
! Apply
module SUBROUTINE ionization(self, edge, part)
module SUBROUTINE ionization_apply(self, edge, part)
USE moduleList
USE moduleSpecies
USE moduleMesh
@ -324,10 +324,10 @@ submodule(moduleMesh) boundaryParticle
!Removes ionizing electron regardless the number of pair created
part%n_in = .FALSE.
END SUBROUTINE ionization
END SUBROUTINE ionization_apply
! Update
subroutine ionization_resetTally(self)
subroutine ionization_update(self)
implicit none
class(boundaryParticleGeneric), intent(inout):: self
@ -338,7 +338,7 @@ submodule(moduleMesh) boundaryParticle
end select
end subroutine ionization_resetTally
end subroutine ionization_update
! Print
subroutine ionization_print(self, fileID)
@ -382,7 +382,7 @@ submodule(moduleMesh) boundaryParticle
end subroutine quasiNeutrality_init
! Apply
module subroutine quasiNeutrality(self, edge, part)
module subroutine quasiNeutrality_apply(self, edge, part)
use moduleRandom
implicit none
@ -398,7 +398,7 @@ submodule(moduleMesh) boundaryParticle
end if
end subroutine quasiNeutrality
end subroutine quasiNeutrality_apply
! Update
subroutine quasiNeutrality_update(self)
@ -513,7 +513,7 @@ submodule(moduleMesh) boundaryParticle
end subroutine outflowAdaptive_init
! Apply
module subroutine outflowAdaptive(self, edge, part)
module subroutine outflowAdaptive_apply(self, edge, part)
use moduleSpecies
use moduleRefParam, only: v_ref
implicit none
@ -532,7 +532,7 @@ submodule(moduleMesh) boundaryParticle
end if
end subroutine outflowAdaptive
end subroutine outflowAdaptive_apply
! Update
subroutine outflowAdaptive_update(self)