Recent Releases of https://github.com/collab4exanbody/exanbody

https://github.com/collab4exanbody/exanbody - v2.0.5

What's Changed

gridparticleslicing

The slicing algorithm is not working fine. It allows to select a direction of projection onto which per-particle data is projected. That can be useful when analyzing shock simulations for example to extract stress or velocity profiles along the shock direction.

Usage example:

gridparticleslicing: { fields: [vx, vy, vz], thickness: 3. ang, direction: [1,0,0], average: ["vx", "vy", "vz"] }

Figure generated using ovito:

profile

write_plot1d

The data projected onto a binned direction using gridparticleslicing outputs a Plot1D structure that can be taken as an input by the operator write_plot1d. This operator was improved to allow for a multicolumns .csv output if the boolean multicolomns is set to true and if multiple fields have been projected on the slice direction.

Usage example:

writeplot1d: { plotnames: [ "vx", "vy", "vz" ], separator: " ", filename: "sliceddata", multicolumns: true }

Figure generated using python:

profiles

averageneighborsscalar

Per-particle data can be averaged within a spherical domain with a user-defined radius. In addition, coefficients of a 4th order polynomial function (of distance to central particle) can be passed as input of the averageneighboursscalar operator. This operator is (for now) limited to scalar data.

Usage example:

averageneighborsscalar: { nbhfield: mass, avgfield: avgmass, rcut: 8.0 ang, weightfunction: [ 1.0, 0.0, 0.0, 0.0 ] } writexyz: { fields: [ mass, avgmass ], filename: "test_avg.xyz" }

Figure generated using ovito from testavg.xyz file:

<img width="400" alt="averagemass" src="https://github.com/user-attachments/assets/1ca0cd85-9d74-43e1-b1bd-f82502c0913e" />

ghostupdateopt

The ghost update function now allows for updating optional fields that have been created dynamically by specific operators, as the average operator described above. Ghost update functions have multiple variants : - ghostupdateall : update all per-particle fields in ghost layers (but not the optional ones) - ghostupdateallnofv : update all per-particle fields except force and velocity vectors (but not the optional ones) - ghostupdater : update only positions - ghostupdateopt : update optional fields (as the ones generated with specific operators)

Usage example:

averageneighborsscalar: { nbhfield: mass, avgfield: avgmass, rcut: 8.0 ang, weightfunction: [ 1.0, 0.0, 0.0, 0.0 ] } writeparaview: { fields: [ mass, avgmass ], writeghost: true, filename: ghostsupdatedno } ghostupdateopt { optfields: [ "avgmass" ] } writeparaview: { fields: [ mass, avgmass ], writeghost: true, filename: ghostsupdatedyes }

Figures generated using paraview from ghostsupdatedno (left) and ghostupdatedyes (right) files:

avg_no_update avg_update

Full Changelog: https://github.com/Collab4exaNBody/exaNBody/compare/v2.0.4...v2.0.5

- C++
Published by lafourcadep 7 months ago

https://github.com/collab4exanbody/exanbody - v2.0.4

What’s Changed in v2.0.4

  • Improved integration with onika: Support added for cases where onika is already defined.
  • New variant of computecellparticles: Introduced an alternate version using ComputeCellParticles… for improved modularity or flexibility.
  • Added Xnb Microcosmos module: Enhances or extends simulation capabilities with the new Microcosmos components.
  • Bug fix: Corrected the default value behavior in reduce_cell_particles to ensure consistency across use cases.

- C++
Published by rprat-pro 7 months ago

https://github.com/collab4exanbody/exanbody - v2.0.1

What's Changed

  • Parallel for 3d by @carrardt in https://github.com/Collab4exaNBody/exaNBody/pull/85

Full Changelog: https://github.com/Collab4exaNBody/exaNBody/compare/v2.0.0...release-v2.0.1

- C++
Published by rprat-pro 9 months ago

https://github.com/collab4exanbody/exanbody - v2.0.2

✨ What's Changed

  • 🐛 Output Slot Error in Lattice Operator
    Fixed an issue with the output slot in the lattice operator. An Optional slot can't be INPUT_OUTPUT.

  • ⚙️ Fix Reader + GPU + set_fields Conflict in exaDEM
    Resolved a compatibility issue when combining the reader, GPU mode, and set_fields in exaDEM.
    compact_memory_grid is now implemented as a function instead of a pure operator node.

- C++
Published by rprat-pro 9 months ago

https://github.com/collab4exanbody/exanbody - v2.0.0

Version 2.0.0:

Main features: - Onika is extracted to be a new repository - Connected componants analysis - Lattice collection with custom lattices

Minor features: - Quadrics, user can define a 4d matrice - Patch some issues : lattice generation, ghost update - Read Quaternion from msp files - Use array of indexes with compute_cell_particles routine instead of indexes 0 -> number_of_cells

- C++
Published by rprat-pro 11 months ago