Had to remove charge, it is working now and it only accounts for charged species
This commit is contained in:
parent
e1dda5b7e0
commit
086ce4f589
1 changed files with 27 additions and 19 deletions
|
|
@ -549,7 +549,7 @@ submodule(moduleMesh) boundaryParticle
|
||||||
real(8), allocatable:: den_nodes(:)
|
real(8), allocatable:: den_nodes(:)
|
||||||
real(8), allocatable:: mom_nodes(:)
|
real(8), allocatable:: mom_nodes(:)
|
||||||
class(meshNode), pointer:: node
|
class(meshNode), pointer:: node
|
||||||
real(8):: den_center, vel_center
|
real(8):: den_center, mom_center, vel_center
|
||||||
real(8):: vel_incident, vel_rest
|
real(8):: vel_incident, vel_rest
|
||||||
real(8):: alpha
|
real(8):: alpha
|
||||||
|
|
||||||
|
|
@ -565,6 +565,11 @@ submodule(moduleMesh) boundaryParticle
|
||||||
allocate(den_nodes(1:edge%nNodes))
|
allocate(den_nodes(1:edge%nNodes))
|
||||||
allocate(mom_nodes(1:edge%nNodes))
|
allocate(mom_nodes(1:edge%nNodes))
|
||||||
do s = 1, nSpecies
|
do s = 1, nSpecies
|
||||||
|
den_center = 0.0d0
|
||||||
|
mom_center = 0.0d0
|
||||||
|
vel_center = 0.0d0
|
||||||
|
select type(sp => species(s)%obj)
|
||||||
|
type is(speciesCharged)
|
||||||
do n = 1, edge%nNodes
|
do n = 1, edge%nNodes
|
||||||
node => mesh%nodes(nodes(n))%obj
|
node => mesh%nodes(nodes(n))%obj
|
||||||
|
|
||||||
|
|
@ -573,9 +578,10 @@ submodule(moduleMesh) boundaryParticle
|
||||||
|
|
||||||
end do
|
end do
|
||||||
|
|
||||||
den_center = qSpecies(s)*edge%gatherF(edge%centerXi(), edge%nNodes, den_nodes)
|
den_center = edge%gatherF(edge%centerXi(), edge%nNodes, den_nodes)
|
||||||
if (den_center > 1.0d-10) then
|
if (den_center > 1.0d-10) then
|
||||||
vel_center = edge%gatherF(edge%centerXi(), edge%nNodes, mom_nodes) / den_center
|
mom_center = edge%gatherF(edge%centerXi(), edge%nNodes, mom_nodes)
|
||||||
|
vel_center = mom_center / den_center
|
||||||
|
|
||||||
else
|
else
|
||||||
vel_center = 0.0d0
|
vel_center = 0.0d0
|
||||||
|
|
@ -588,9 +594,11 @@ submodule(moduleMesh) boundaryParticle
|
||||||
vel_rest = vel_rest + vel_center
|
vel_rest = vel_rest + vel_center
|
||||||
end if
|
end if
|
||||||
|
|
||||||
|
end select
|
||||||
|
|
||||||
end do
|
end do
|
||||||
|
|
||||||
alpha = vel_rest + vel_incident
|
alpha = vel_rest - vel_incident
|
||||||
|
|
||||||
! Apply correction with a factor of 0.1 to avoid fast changes
|
! Apply correction with a factor of 0.1 to avoid fast changes
|
||||||
self%velocity_shift(edge%n) = self%velocity_shift(edge%n) + 1.0d-2 * alpha
|
self%velocity_shift(edge%n) = self%velocity_shift(edge%n) + 1.0d-2 * alpha
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue