Implementation done, but values of E are too high. Too much charge being accumulated

This commit is contained in:
Jorge Gonzalez 2026-04-17 15:15:27 +02:00
commit 55645e18b0
3 changed files with 153 additions and 2 deletions

View file

@ -972,6 +972,11 @@ MODULE moduleInput
call initFloating(self, config, object)
case ("freeCurrent")
allocate(boundaryEMFreeCurrent:: self)
call initFreeCurrent(self, config, object)
case default
call criticalError('Boundary type ' // bType // ' not supported', 'readBoundaryEM')
@ -1334,8 +1339,25 @@ MODULE moduleInput
! If the boundary for the species is linked to the one analysing, add the edges
if (associated(physicalSurfaces(ps)%EM, bound)) then
bound%nodes = [bound%nodes, physicalSurfaces(ps)%nodes]
end if
! Specific assignments per type
select type(bound)
type is(boundaryEMFreeCurrent)
if (associated(physicalSurfaces(ps)%EM, bound)) then
bound%edges = [bound%edges, physicalSurfaces(ps)%edges]
bound%nEdges = size(bound%edges)
allocate(bound%electricField(1:bound%nEdges))
bound%electricField = 0.0d0
allocate(bound%surfaceCharge(1:bound%nEdges))
bound%surfaceCharge = 0.0d0
end if
end select
end do
bound%nNodes = size(bound%nodes)