Skip to content

Catalyst viz dev - #618

Draft
klappi-s wants to merge 10 commits into
masterfrom
catalyst-viz-dev
Draft

klappi-s wants to merge 10 commits into
masterfrom
catalyst-viz-dev

Conversation

@klappi-s

Copy link
Copy Markdown
Collaborator

Some Updates in Regards to the Catalyst Insitu functionalities

biddisco and others added 10 commits October 2, 2026 14:42
- apply clang-format to Catalyst files
- map bool particle attributes to conduit uint8: conduit has no bool
  type, and uint8 is size/alignment compatible, so ParaView renders the
  attribute as a numeric array
- make InitVizChannel/ExecVizChannel public: these ParticleAttrib hooks
  are what the adaptor calls to register/refresh an attribute in the
  conduit node
- restore requires(!is_vector_v<T>) on scalar field InitVizChannel so
  vector attributes keep taking the multi-component path
- copy field device view to host before extracting the non-ghost
  interior: strips ghost layers so each rank exports only its owned
  cells
- add TransformData bunch-transform channel: origin + rotation rows
  (plus inverse) published with each particle channel so ParaView can
  transform bunch-frame geometry into the lab frame
- introduce Channel.h/.hpp with MeshChannelT (one mesh + N field
  arrays) and ParticleChannel (a container published as a multimesh
  with particles/boundingbox/transform blocks)
- allocate persistent staging buffers and host mirrors at registration
  and set conduit external pointers once; Execute only deep-copies
  device->host, removing the per-step alloc/free churn of the old flat
  registry
- pass channel types to scripts so pipeline_default dispatches on
  ctype instead of name-pattern matching
- avoid KOKKOS_LAMBDA in private member functions for NVCC
- resize persistent mirrors when particle count decreases
- rename multimesh blocks and add GeometryPolicy option: Dynamic
  re-reads mesh origin/spacing every Execute (the bunch mesh may have
  moved), Static sets geometry once at init for zero per-step cost
- addMeshBlock nests a mesh channel inside a particle multimesh via
  basePath (catalyst/channels/<parent>/data/<block>) so each bunch
  channel is self-contained: particles + boundingbox + transform +
  its own field mesh
- re-init mesh block after parent particle reset and re-add
  assembly/mesh
- add missing assembly/transform and assembly/mesh channel entries
- remove debug stderr from MeshChannelT::init
- apply clang-format to Catalyst files
- map bool particle attributes to conduit uint8: conduit has no bool
  type, and uint8 is size/alignment compatible, so ParaView renders the
  attribute as a numeric array
- make InitVizChannel/ExecVizChannel public: these ParticleAttrib hooks
  are what the adaptor calls to register/refresh an attribute in the
  conduit node
- restore requires(!is_vector_v<T>) on scalar field InitVizChannel so
  vector attributes keep taking the multi-component path
- copy field device view to host before extracting the non-ghost
  interior: strips ghost layers so each rank exports only its owned
  cells
- add TransformData bunch-transform channel: origin + rotation rows
  (plus inverse) published with each particle channel so ParaView can
  transform bunch-frame geometry into the lab frame
- introduce Channel.h/.hpp with MeshChannelT (one mesh + N field
  arrays) and ParticleChannel (a container published as a multimesh
  with particles/boundingbox/transform blocks)
- allocate persistent staging buffers and host mirrors at registration
  and set conduit external pointers once; Execute only deep-copies
  device->host, removing the per-step alloc/free churn of the old flat
  registry
- pass channel types to scripts so pipeline_default dispatches on
  ctype instead of name-pattern matching
- retire the obsolete vis-dispatch path from VisRegistryRuntime
  (steering-only registry) and drop the unused InitVisitor/ExecVisitor
- avoid KOKKOS_LAMBDA in private member functions for NVCC
- resize persistent mirrors when particle count decreases
- rename multimesh blocks and add GeometryPolicy option: Dynamic
  re-reads mesh origin/spacing every Execute (the bunch mesh may have
  moved), Static sets geometry once at init for zero per-step cost
- addMeshBlock nests a mesh channel inside a particle multimesh via
  basePath (catalyst/channels/<parent>/data/<block>) so each bunch
  channel is self-contained: particles + boundingbox + transform +
  its own field mesh
- re-init mesh block after parent particle reset and re-add
  assembly/mesh
- add missing assembly/transform and assembly/mesh channel entries
- remove debug stderr from MeshChannelT::init
- strip flat-registry-era leftovers from the adaptor: visRegistry_m
  and vis visitors, ghost-mask cache, forceHostCopy map,
  transformChannels, png/vtk extract flags; steering now also
  requires catalystLive
- rebuild the default pipeline on the mesh-centric channel API:
  one styled view per channel with the pre-redesign extract
  filenames (Particles_Particles_*.png, EField_VectorField_*.png,
  BField_VectorField_*.png, ...)
- dispatch on --channel_types, drive the camera from producer
  bounds every cycle and use a diagonal-scaled Gaussian radius as
  before
- skip vtkGhostType and RankID when enumerating mesh arrays so the
  extract set matches the pre-redesign channels
- pass channel names as <parent>/<block> for nested mesh blocks,
  per-channel ghost-layer counts, --png/--VTKextract flags, extracts
  output dir and experiment name to the script; add
  Channel::basePath()/ghostLayers() accessors used to build them
@klappi-s
klappi-s requested a review from biddisco October 21, 2026 08:25
@klappi-s klappi-s self-assigned this Oct 21, 2026
@klappi-s klappi-s added enhancement New feature or request cleanup labels Oct 21, 2026
@biddisco

biddisco commented Oct 23, 2026 •

Copy link
Copy Markdown
Collaborator

cscs-ci run cscs-ci-gh200

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cleanup enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants