mcdc.Surface¶
- class mcdc.Surface(type_, name, boundary_condition)¶
Geometric surface primitive with optional boundary condition and motion.
Surfaces are registered non-singletons and receive a stable
ID. Factory constructors (PlaneX(),CylinderZ(), etc.) set the quadric coefficients (A..J) and linearity flag. Motion segments can be defined withmove().Parameters¶
- type_int
One of
SURFACE_*constants (e.g.,SURFACE_PLANE_X).- namestr
Optional label for reporting.
- boundary_conditionstr
Boundary behavior at the surface (
"none","vacuum", or"reflective").
Attributes¶
- IDint
Index in the global registry (assigned on construction).
- type_int
Surface type code (
SURFACE_*).- namestr
User label.
- boundary_conditionint
One of
BC_NONE,BC_VACUUM,BC_REFLECTIVE.- A,B,C,D,E,F,G,H,I,Jfloat
Quadric coefficients defining the implicit surface.
- linearbool
True for linear (plane) surfaces.
- quadricbool
True for quadric (e.g.,cylinder) surfaces.
- quarticbool
True for quartic (e.g., torus) surfaces.
- nx, ny, nzfloat
Outward normal components for linear planes.
- movingbool
True if
move()has been called.- N_moveint
Number of motion segments plus the final static segment.
- move_velocities(N_move, 3) ndarray
Per-segment velocity vectors.
- move_durations(N_move,) ndarray
Per-segment durations (s).
- move_time_grid(N_move+1,) ndarray
Cumulative time breakpoints.
- move_translations(N_move+1, 3) ndarray
Cumulative translations at each breakpoint.
See Also¶
- Region
Use unary
+/-to form half-spaces:+surfaceor-surface.- decode_type
Human-readable surface type.
- decode_BC_type
Human-readable boundary condition name.