Files compile but there is no linking in mesh module
This commit is contained in:
parent
5dfc8d4ce9
commit
135f1f464c
7 changed files with 57 additions and 51 deletions
|
|
@ -17,7 +17,8 @@ OBJECTS = $(OBJDIR)/moduleMesh.o $(OBJDIR)/moduleMeshCommon.o $(OBJDIR)/moduleCo
|
||||||
$(OBJDIR)/moduleMesh1DCart.o \
|
$(OBJDIR)/moduleMesh1DCart.o \
|
||||||
$(OBJDIR)/moduleMesh0D.o \
|
$(OBJDIR)/moduleMesh0D.o \
|
||||||
$(OBJDIR)/moduleSolver.o \
|
$(OBJDIR)/moduleSolver.o \
|
||||||
$(OBJDIR)/modulePusher.o
|
$(OBJDIR)/modulePusher.o \
|
||||||
|
$(OBJDIR)/velocityDistribution.o
|
||||||
|
|
||||||
|
|
||||||
all: $(OUTPUT)
|
all: $(OUTPUT)
|
||||||
|
|
|
||||||
|
|
@ -800,20 +800,20 @@ MODULE moduleInput
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
||||||
TYPE(json_file), INTENT(inout):: config
|
TYPE(json_file), INTENT(inout):: config
|
||||||
integer:: b, s
|
integer:: b
|
||||||
character(2):: iString
|
character(2):: iString
|
||||||
character(:), allocatable:: object
|
character(:), allocatable:: object
|
||||||
character(len=100), allocatable:: speciesNames(:)
|
character(len=100), allocatable:: speciesNames(:)
|
||||||
LOGICAL:: found
|
LOGICAL:: found
|
||||||
|
|
||||||
! Read models of particles
|
! Read models of particles
|
||||||
CALL config%info('boundaries.particles.models', found, n_children = nBoundary)
|
CALL config%info('boundaries.particles.models', found, n_children = nBoundariesParticle)
|
||||||
ALLOCATE(boundaries(1:nBoundary))
|
ALLOCATE(boundariesParticle(1:nBoundariesParticle))
|
||||||
DO b = 1, nBoundary
|
DO b = 1, nBoundariesParticle
|
||||||
WRITE(iString, '(i2)') b
|
WRITE(iString, '(i2)') b
|
||||||
object = 'boundary.particles.models(' // TRIM(iString) // ')'
|
object = 'boundary.particles.models(' // TRIM(iString) // ')'
|
||||||
|
|
||||||
call boundaries(i)%init(config, object, b)
|
call boundariesParticle(b)%obj%init(config, object, b)
|
||||||
|
|
||||||
END DO
|
END DO
|
||||||
|
|
||||||
|
|
@ -827,14 +827,14 @@ MODULE moduleInput
|
||||||
USE moduleOutput
|
USE moduleOutput
|
||||||
USE moduleErrors
|
USE moduleErrors
|
||||||
USE moduleEM
|
USE moduleEM
|
||||||
USE moduleSpecies
|
USE moduleSpecies, only: nSpecies
|
||||||
USE json_module
|
USE json_module
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
||||||
TYPE(json_file), INTENT(inout):: config
|
TYPE(json_file), INTENT(inout):: config
|
||||||
CHARACTER(:), ALLOCATABLE:: object
|
CHARACTER(:), ALLOCATABLE:: object
|
||||||
LOGICAL:: found
|
LOGICAL:: found
|
||||||
INTEGER:: b
|
INTEGER:: b, s
|
||||||
CHARACTER(2):: bString
|
CHARACTER(2):: bString
|
||||||
character(len=100), allocatable:: modelName(:)
|
character(len=100), allocatable:: modelName(:)
|
||||||
|
|
||||||
|
|
@ -845,11 +845,11 @@ MODULE moduleInput
|
||||||
|
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
do b = 1, nBoundaryEM
|
do b = 1, nBoundariesEM
|
||||||
write(bString, '(I2)') b
|
write(bString, '(I2)') b
|
||||||
object = 'boundaries.EM.models(' // TRIM(bString) // ')'
|
object = 'boundaries.EM.models(' // TRIM(bString) // ')'
|
||||||
|
|
||||||
call boundariesEM(b)%init(config, object, b)
|
call boundariesEM(b)%obj%init(config, object, b)
|
||||||
|
|
||||||
end do
|
end do
|
||||||
|
|
||||||
|
|
@ -879,10 +879,10 @@ MODULE moduleInput
|
||||||
character(:), allocatable:: object
|
character(:), allocatable:: object
|
||||||
logical:: found
|
logical:: found
|
||||||
integer:: ps
|
integer:: ps
|
||||||
character(2):: psString
|
character(2):: psString, sSTring
|
||||||
integer:: nParticleModels
|
integer:: nParticleModels
|
||||||
character(len=100), allocatable:: particleModels(:)
|
character(:), allocatable:: particleModel
|
||||||
character(len=100):: EMModel
|
character(:), allocatable:: EMModel
|
||||||
integer:: s, boundaryIndex
|
integer:: s, boundaryIndex
|
||||||
|
|
||||||
call config%info('physicalSurfaces', found, n_children = nPhysicalSurfaces)
|
call config%info('physicalSurfaces', found, n_children = nPhysicalSurfaces)
|
||||||
|
|
@ -895,8 +895,8 @@ MODULE moduleInput
|
||||||
end if
|
end if
|
||||||
|
|
||||||
do ps = 1, nPhysicalSurfaces
|
do ps = 1, nPhysicalSurfaces
|
||||||
write(ps, '(I2)') ps
|
write(psString, '(I2)') ps
|
||||||
object = 'physicalSurfaces(' // TRIM(bString) // ')'
|
object = 'physicalSurfaces(' // trim(psString) // ')'
|
||||||
|
|
||||||
allocate(physicalSurfaces(ps)%nodes(0))
|
allocate(physicalSurfaces(ps)%nodes(0))
|
||||||
allocate(physicalSurfaces(ps)%edges(0))
|
allocate(physicalSurfaces(ps)%edges(0))
|
||||||
|
|
@ -913,18 +913,19 @@ MODULE moduleInput
|
||||||
call criticalError('Not enough models for particles provided', 'readPhysicalSurfaces')
|
call criticalError('Not enough models for particles provided', 'readPhysicalSurfaces')
|
||||||
|
|
||||||
end if
|
end if
|
||||||
call config%get(object // '.particles', particleModels, found)
|
|
||||||
allocate(physicalSurfaces(ps)%particles(1:nSpecies))
|
allocate(physicalSurfaces(ps)%particles(1:nSpecies))
|
||||||
do s = 1, nSpecies
|
do s = 1, nSpecies
|
||||||
boundaryIndex = boundaryParticlesName_to_Index(particleModels(s))
|
write(sString, '(I2)') s
|
||||||
physicalSurfaces(ps)%particles(s)%obj => boundaryParticles(boundaryIndex)%obj
|
call config%get(object // '.particles(' // trim(sSTring) // ')', particleModel, found)
|
||||||
|
boundaryIndex = boundaryParticleName_to_Index(particleModel)
|
||||||
|
physicalSurfaces(ps)%particles(s)%obj => boundariesParticle(boundaryIndex)%obj
|
||||||
|
|
||||||
end do
|
end do
|
||||||
|
|
||||||
! Link electromagnetic boundary condition
|
! Link electromagnetic boundary condition
|
||||||
call config%get(object // '.EM', EMModel, found)
|
call config%get(object // '.EM', EMModel, found)
|
||||||
if (found) then
|
if (found) then
|
||||||
bouondaryIndex = boundaryEMName_to_Index(EMModel)
|
boundaryIndex = boundaryEMName_to_Index(EMModel)
|
||||||
physicalSurfaces(ps)%EM => boundariesEM(boundaryIndex)%obj
|
physicalSurfaces(ps)%EM => boundariesEM(boundaryIndex)%obj
|
||||||
|
|
||||||
end if
|
end if
|
||||||
|
|
@ -957,6 +958,10 @@ MODULE moduleInput
|
||||||
LOGICAL:: found
|
LOGICAL:: found
|
||||||
CHARACTER(:), ALLOCATABLE:: meshFormat, meshFile
|
CHARACTER(:), ALLOCATABLE:: meshFormat, meshFile
|
||||||
REAL(8):: volume
|
REAL(8):: volume
|
||||||
|
integer:: b, ps, s
|
||||||
|
integer:: e
|
||||||
|
integer:: nVolColl
|
||||||
|
integer:: boundaryIndex
|
||||||
|
|
||||||
object = 'geometry'
|
object = 'geometry'
|
||||||
|
|
||||||
|
|
@ -1170,7 +1175,7 @@ MODULE moduleInput
|
||||||
! Loop over all species
|
! Loop over all species
|
||||||
do s = 1, nSpecies
|
do s = 1, nSpecies
|
||||||
! If the boundary for the species is linked to the one analysing, add the edges
|
! If the boundary for the species is linked to the one analysing, add the edges
|
||||||
if (associated(physicalSurfaces(ps)%particles(s), bound)) then
|
if (associated(physicalSurfaces(ps)%particles(s)%obj, bound)) then
|
||||||
bound%edges = [bound%edges, physicalSurfaces(ps)%edges]
|
bound%edges = [bound%edges, physicalSurfaces(ps)%edges]
|
||||||
end if
|
end if
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -324,8 +324,7 @@ MODULE moduleMesh
|
||||||
|
|
||||||
ABSTRACT INTERFACE
|
ABSTRACT INTERFACE
|
||||||
SUBROUTINE initCell_interface(self, n, p, nodes)
|
SUBROUTINE initCell_interface(self, n, p, nodes)
|
||||||
IMPORT:: meshCell
|
IMPORT:: meshCell, meshNodeCont
|
||||||
IMPORT meshNodeCont
|
|
||||||
CLASS(meshCell), INTENT(out):: self
|
CLASS(meshCell), INTENT(out):: self
|
||||||
INTEGER, INTENT(in):: n
|
INTEGER, INTENT(in):: n
|
||||||
INTEGER, INTENT(in):: p(:)
|
INTEGER, INTENT(in):: p(:)
|
||||||
|
|
@ -630,7 +629,7 @@ MODULE moduleMesh
|
||||||
END INTERFACE
|
END INTERFACE
|
||||||
|
|
||||||
!Logical to indicate if an specific mesh for MC Collisions is used
|
!Logical to indicate if an specific mesh for MC Collisions is used
|
||||||
LOGICAL:: doubleMesh
|
LOGICAL:: doubleMesh = .false.
|
||||||
!Logical to indicate if MCC collisions are performed
|
!Logical to indicate if MCC collisions are performed
|
||||||
LOGICAL:: doMCCollisions = .FALSE.
|
LOGICAL:: doMCCollisions = .FALSE.
|
||||||
!Logical to indicate if Coulomb scattering is performed
|
!Logical to indicate if Coulomb scattering is performed
|
||||||
|
|
@ -737,7 +736,7 @@ MODULE moduleMesh
|
||||||
! Ensures quasi-neutrality by changing the reflection coefficient
|
! Ensures quasi-neutrality by changing the reflection coefficient
|
||||||
type, public, extends(boundaryParticleGeneric):: boundaryQuasiNeutrality
|
type, public, extends(boundaryParticleGeneric):: boundaryQuasiNeutrality
|
||||||
real(8):: alpha ! Reflection parameter
|
real(8):: alpha ! Reflection parameter
|
||||||
integer, allocatable:: edges(:) !Array with edges
|
type(meshEdgePointer), allocatable:: edges(:) !Array with edges
|
||||||
contains
|
contains
|
||||||
procedure, pass:: apply => quasiNeutrality
|
procedure, pass:: apply => quasiNeutrality
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
submodule(moduleMesh) boundaryEM
|
submodule(moduleMesh) boundaryEM
|
||||||
CONTAINS
|
CONTAINS
|
||||||
function boundaryEMName_to_Index(boundaryName) result(bp)
|
module function boundaryEMName_to_Index(boundaryName) result(bp)
|
||||||
use moduleErrors
|
use moduleErrors
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
|
|
@ -73,7 +73,7 @@ submodule(moduleMesh) boundaryEM
|
||||||
end subroutine initBoundaryEM
|
end subroutine initBoundaryEM
|
||||||
|
|
||||||
! Initialize Dirichlet boundary condition
|
! Initialize Dirichlet boundary condition
|
||||||
SUBROUTINE initDirichlet(self, config, object)
|
module SUBROUTINE initDirichlet(self, config, object)
|
||||||
use json_module
|
use json_module
|
||||||
USE moduleRefParam, ONLY: Volt_ref
|
USE moduleRefParam, ONLY: Volt_ref
|
||||||
use moduleErrors
|
use moduleErrors
|
||||||
|
|
@ -100,7 +100,7 @@ submodule(moduleMesh) boundaryEM
|
||||||
end subroutine initDirichlet
|
end subroutine initDirichlet
|
||||||
|
|
||||||
! Initialize Dirichlet boundary condition
|
! Initialize Dirichlet boundary condition
|
||||||
subroutine initDirichletTime(self, config, object)
|
module subroutine initDirichletTime(self, config, object)
|
||||||
use json_module
|
use json_module
|
||||||
use moduleRefParam, ONLY: Volt_ref, ti_ref
|
use moduleRefParam, ONLY: Volt_ref, ti_ref
|
||||||
use moduleErrors
|
use moduleErrors
|
||||||
|
|
@ -142,7 +142,7 @@ submodule(moduleMesh) boundaryEM
|
||||||
END SUBROUTINE initDirichletTime
|
END SUBROUTINE initDirichletTime
|
||||||
|
|
||||||
!Apply Dirichlet boundary condition to the poisson equation
|
!Apply Dirichlet boundary condition to the poisson equation
|
||||||
SUBROUTINE applyDirichlet(self, vectorF)
|
module SUBROUTINE applyDirichlet(self, vectorF)
|
||||||
USE moduleMesh
|
USE moduleMesh
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
||||||
|
|
@ -159,7 +159,7 @@ submodule(moduleMesh) boundaryEM
|
||||||
END SUBROUTINE applyDirichlet
|
END SUBROUTINE applyDirichlet
|
||||||
|
|
||||||
!Apply Dirichlet boundary condition with time temporal profile
|
!Apply Dirichlet boundary condition with time temporal profile
|
||||||
SUBROUTINE applyDirichletTime(self, vectorF)
|
module SUBROUTINE applyDirichletTime(self, vectorF)
|
||||||
USE moduleMesh
|
USE moduleMesh
|
||||||
USE moduleCaseParam, ONLY: timeStep, tauMin
|
USE moduleCaseParam, ONLY: timeStep, tauMin
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
!moduleMeshBoundary: Boundary functions for the mesh edges
|
!moduleMeshBoundary: Boundary functions for the mesh edges
|
||||||
submodule(moduleMesh) boundaryParticle
|
submodule(moduleMesh) boundaryParticle
|
||||||
contains
|
contains
|
||||||
function boundaryParticleName_to_Index(boundaryName) result(bp)
|
module function boundaryParticleName_to_Index(boundaryName) result(bp)
|
||||||
use moduleErrors
|
use moduleErrors
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
|
|
@ -209,6 +209,7 @@ submodule(moduleMesh) boundaryParticle
|
||||||
select type(boundary)
|
select type(boundary)
|
||||||
type is(boundaryQuasiNeutrality)
|
type is(boundaryQuasiNeutrality)
|
||||||
boundary%alpha = 0.d0
|
boundary%alpha = 0.d0
|
||||||
|
allocate(boundary%edges(0))
|
||||||
|
|
||||||
end select
|
end select
|
||||||
|
|
||||||
|
|
@ -241,7 +242,7 @@ submodule(moduleMesh) boundaryParticle
|
||||||
END SUBROUTINE reflection
|
END SUBROUTINE reflection
|
||||||
|
|
||||||
!Absoption in a surface
|
!Absoption in a surface
|
||||||
SUBROUTINE absorption(self, edge, part)
|
module SUBROUTINE absorption(self, edge, part)
|
||||||
USE moduleCaseParam
|
USE moduleCaseParam
|
||||||
USE moduleSpecies
|
USE moduleSpecies
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
@ -278,7 +279,7 @@ submodule(moduleMesh) boundaryParticle
|
||||||
END SUBROUTINE absorption
|
END SUBROUTINE absorption
|
||||||
|
|
||||||
!Transparent boundary condition
|
!Transparent boundary condition
|
||||||
SUBROUTINE transparent(self, edge, part)
|
module SUBROUTINE transparent(self, edge, part)
|
||||||
USE moduleSpecies
|
USE moduleSpecies
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
||||||
|
|
@ -294,7 +295,7 @@ submodule(moduleMesh) boundaryParticle
|
||||||
!Symmetry axis. Reflects particles.
|
!Symmetry axis. Reflects particles.
|
||||||
!Although this function should never be called, it is set as a reflective boundary
|
!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.
|
!to properly deal with possible particles reaching a corner and selecting this boundary.
|
||||||
SUBROUTINE symmetryAxis(self, edge, part)
|
module SUBROUTINE symmetryAxis(self, edge, part)
|
||||||
USE moduleSpecies
|
USE moduleSpecies
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
||||||
|
|
@ -307,7 +308,7 @@ submodule(moduleMesh) boundaryParticle
|
||||||
END SUBROUTINE symmetryAxis
|
END SUBROUTINE symmetryAxis
|
||||||
|
|
||||||
!Wall with temperature
|
!Wall with temperature
|
||||||
SUBROUTINE wallTemperature(self, edge, part)
|
module SUBROUTINE wallTemperature(self, edge, part)
|
||||||
USE moduleSpecies
|
USE moduleSpecies
|
||||||
USE moduleRandom
|
USE moduleRandom
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
@ -329,7 +330,7 @@ submodule(moduleMesh) boundaryParticle
|
||||||
|
|
||||||
!Ionization surface: an electron will pass through the surface
|
!Ionization surface: an electron will pass through the surface
|
||||||
! and create an ion-electron pair based on a neutral background
|
! and create an ion-electron pair based on a neutral background
|
||||||
SUBROUTINE ionization(self, edge, part)
|
module SUBROUTINE ionization(self, edge, part)
|
||||||
USE moduleList
|
USE moduleList
|
||||||
USE moduleSpecies
|
USE moduleSpecies
|
||||||
USE moduleMesh
|
USE moduleMesh
|
||||||
|
|
@ -426,7 +427,7 @@ submodule(moduleMesh) boundaryParticle
|
||||||
|
|
||||||
END SUBROUTINE ionization
|
END SUBROUTINE ionization
|
||||||
|
|
||||||
subroutine quasiNeutrality(self, edge, part)
|
module subroutine quasiNeutrality(self, edge, part)
|
||||||
use moduleRandom
|
use moduleRandom
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
|
|
@ -483,7 +484,7 @@ submodule(moduleMesh) boundaryParticle
|
||||||
|
|
||||||
end subroutine genericReflection
|
end subroutine genericReflection
|
||||||
|
|
||||||
subroutine genericTransparent(edge, part)
|
module subroutine genericTransparent(edge, part)
|
||||||
use moduleSpecies
|
use moduleSpecies
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
submodule(moduleMesh) elements
|
submodule(moduleMesh) elements
|
||||||
CONTAINS
|
CONTAINS
|
||||||
!Reset the output of node
|
!Reset the output of node
|
||||||
PURE SUBROUTINE resetOutput(self)
|
PURE module SUBROUTINE resetOutput(self)
|
||||||
USE moduleSpecies
|
USE moduleSpecies
|
||||||
USE moduleOutput
|
USE moduleOutput
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
@ -18,7 +18,7 @@ submodule(moduleMesh) elements
|
||||||
|
|
||||||
END SUBROUTINE resetOutput
|
END SUBROUTINE resetOutput
|
||||||
|
|
||||||
subroutine meshNodePointerAdd(self, node)
|
module subroutine meshNodePointerAdd(self, node)
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
class(meshNodePointer), allocatable, intent(inout):: self(:)
|
class(meshNodePointer), allocatable, intent(inout):: self(:)
|
||||||
|
|
@ -49,7 +49,7 @@ submodule(moduleMesh) elements
|
||||||
|
|
||||||
end subroutine meshNodePointerAdd
|
end subroutine meshNodePointerAdd
|
||||||
|
|
||||||
function meshNodePointer_equal_type_type(self, other) result(isEqual)
|
module function meshNodePointer_equal_type_type(self, other) result(isEqual)
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
class(meshNodePointer), intent(in):: self, other
|
class(meshNodePointer), intent(in):: self, other
|
||||||
|
|
@ -59,7 +59,7 @@ submodule(moduleMesh) elements
|
||||||
|
|
||||||
end function meshNodePointer_equal_type_type
|
end function meshNodePointer_equal_type_type
|
||||||
|
|
||||||
function meshNodePointer_equal_type_int(self, other) result(isEqual)
|
module function meshNodePointer_equal_type_int(self, other) result(isEqual)
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
class(meshNodePointer), intent(in):: self
|
class(meshNodePointer), intent(in):: self
|
||||||
|
|
@ -70,7 +70,7 @@ submodule(moduleMesh) elements
|
||||||
|
|
||||||
end function meshNodePointer_equal_type_int
|
end function meshNodePointer_equal_type_int
|
||||||
|
|
||||||
function meshEdgePointer_equal_type_type(self, other) result(isEqual)
|
module function meshEdgePointer_equal_type_type(self, other) result(isEqual)
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
class(meshEdgePointer), intent(in):: self, other
|
class(meshEdgePointer), intent(in):: self, other
|
||||||
|
|
@ -80,7 +80,7 @@ submodule(moduleMesh) elements
|
||||||
|
|
||||||
end function meshEdgePointer_equal_type_type
|
end function meshEdgePointer_equal_type_type
|
||||||
|
|
||||||
subroutine meshEdgePointer_add(self, edge)
|
module subroutine meshEdgePointer_add(self, edge)
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
class(meshEdgePointer), allocatable, intent(inout):: self(:)
|
class(meshEdgePointer), allocatable, intent(inout):: self(:)
|
||||||
|
|
@ -111,7 +111,7 @@ submodule(moduleMesh) elements
|
||||||
|
|
||||||
end subroutine meshEdgePointer_add
|
end subroutine meshEdgePointer_add
|
||||||
|
|
||||||
function meshEdgePointer_equal_type_int(self, other) result(isEqual)
|
module function meshEdgePointer_equal_type_int(self, other) result(isEqual)
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
class(meshEdgePointer), intent(in):: self
|
class(meshEdgePointer), intent(in):: self
|
||||||
|
|
@ -123,7 +123,7 @@ submodule(moduleMesh) elements
|
||||||
end function meshEdgePointer_equal_type_int
|
end function meshEdgePointer_equal_type_int
|
||||||
|
|
||||||
!Constructs the global K matrix
|
!Constructs the global K matrix
|
||||||
SUBROUTINE constructGlobalK(self)
|
module SUBROUTINE constructGlobalK(self)
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
||||||
CLASS(meshParticles), INTENT(inout):: self
|
CLASS(meshParticles), INTENT(inout):: self
|
||||||
|
|
@ -189,7 +189,7 @@ submodule(moduleMesh) elements
|
||||||
END SUBROUTINE constructGlobalK
|
END SUBROUTINE constructGlobalK
|
||||||
|
|
||||||
! Gather the value of valNodes at position Xi of an edge
|
! Gather the value of valNodes at position Xi of an edge
|
||||||
pure function gatherF_edge_scalar(self, Xi, nNodes, valNodes) RESULT(f)
|
pure module function gatherF_edge_scalar(self, Xi, nNodes, valNodes) RESULT(f)
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
class(meshEdge), intent(in):: self
|
class(meshEdge), intent(in):: self
|
||||||
|
|
@ -205,7 +205,7 @@ submodule(moduleMesh) elements
|
||||||
end function gatherF_edge_scalar
|
end function gatherF_edge_scalar
|
||||||
|
|
||||||
!Gather the value of valNodes (scalar) at position Xi
|
!Gather the value of valNodes (scalar) at position Xi
|
||||||
PURE FUNCTION gatherF_cell_scalar(self, Xi, nNodes, valNodes) RESULT(f)
|
PURE module FUNCTION gatherF_cell_scalar(self, Xi, nNodes, valNodes) RESULT(f)
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
||||||
CLASS(meshCell), INTENT(in):: self
|
CLASS(meshCell), INTENT(in):: self
|
||||||
|
|
@ -221,7 +221,7 @@ submodule(moduleMesh) elements
|
||||||
END FUNCTION gatherF_cell_scalar
|
END FUNCTION gatherF_cell_scalar
|
||||||
|
|
||||||
!Gather the value of valNodes (array) at position Xi
|
!Gather the value of valNodes (array) at position Xi
|
||||||
PURE FUNCTION gatherF_cell_array(self, Xi, nNodes, valNodes) RESULT(f)
|
PURE module FUNCTION gatherF_cell_array(self, Xi, nNodes, valNodes) RESULT(f)
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
||||||
CLASS(meshCell), INTENT(in):: self
|
CLASS(meshCell), INTENT(in):: self
|
||||||
|
|
@ -237,7 +237,7 @@ submodule(moduleMesh) elements
|
||||||
END FUNCTION gatherF_cell_array
|
END FUNCTION gatherF_cell_array
|
||||||
|
|
||||||
!Gather the spatial derivative of valNodes (scalar) at position Xi
|
!Gather the spatial derivative of valNodes (scalar) at position Xi
|
||||||
PURE FUNCTION gatherDF_cell_scalar(self, Xi, nNodes, valNodes) RESULT(df)
|
PURE module FUNCTION gatherDF_cell_scalar(self, Xi, nNodes, valNodes) RESULT(df)
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
||||||
CLASS(meshCell), INTENT(in):: self
|
CLASS(meshCell), INTENT(in):: self
|
||||||
|
|
@ -262,7 +262,7 @@ submodule(moduleMesh) elements
|
||||||
END FUNCTION gatherDF_cell_scalar
|
END FUNCTION gatherDF_cell_scalar
|
||||||
|
|
||||||
!Scatters particle properties into cell nodes
|
!Scatters particle properties into cell nodes
|
||||||
SUBROUTINE scatter(self, nNodes, part)
|
module SUBROUTINE scatter(self, nNodes, part)
|
||||||
USE moduleMath
|
USE moduleMath
|
||||||
USE moduleSpecies
|
USE moduleSpecies
|
||||||
USE OMP_LIB
|
USE OMP_LIB
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
submodule(moduleMesh) surfaces
|
submodule(moduleMesh) surfaces
|
||||||
contains
|
contains
|
||||||
function physicalSurface_to_index(ps) result(index)
|
module function physicalSurface_to_index(ps) result(index)
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
integer:: ps
|
integer:: ps
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue