forked from openecloud/openecloud
-
Notifications
You must be signed in to change notification settings - Fork 0
/
particleBoundary.pxd
45 lines (31 loc) · 1.6 KB
/
particleBoundary.pxd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
cimport grid
cimport particles
cdef class ParticleBoundary:
cdef:
grid.Grid gridObj
particles.Particles particlesObj
unsigned int nx, ny, np, absorbedMacroParticleCount
double lx, ly, dx, dy
double[:,:] absorbedParticles, normalVectors
double[:] remainingTimeStep
cpdef object saveAbsorbed(ParticleBoundary self)
cpdef double[:,:] getAbsorbedParticles(ParticleBoundary self)
cpdef unsigned int getAbsorbedMacroParticleCount(ParticleBoundary self)
cpdef double[:,:] getNormalVectors(ParticleBoundary self)
cdef class AbsorbRectangular(ParticleBoundary):
cdef:
unsigned short[:] particleLeftWhere
cpdef indexInside(AbsorbRectangular self)
cpdef unsigned short isInside(AbsorbRectangular self, double x, double y)
cpdef object calculateInteractionPoint(AbsorbRectangular self)
cpdef object calculateNormalVectors(AbsorbRectangular self)
cdef class AbsorbElliptical(ParticleBoundary):
cpdef object indexInside(AbsorbElliptical self)
cpdef unsigned short isInside(AbsorbElliptical self, double x, double y)
cpdef object calculateInteractionPoint(AbsorbElliptical self)
cpdef object calculateNormalVectors(AbsorbElliptical self)
cdef class AbsorbArbitraryCutCell(ParticleBoundary):
cpdef object indexInside(AbsorbArbitraryCutCell self)
cpdef unsigned short isInside(AbsorbArbitraryCutCell self, double x, double y)
cpdef object calculateInteractionPoint(AbsorbArbitraryCutCell self)
cpdef object calculateNormalVectors(AbsorbArbitraryCutCell self)