-
Notifications
You must be signed in to change notification settings - Fork 0
Function Reference
Generated automatically from Doxygen-style docblocks in .cpp files.
Legend: πΈ Purpose | β¬οΈ Inputs | β¬οΈ Outputs | π Notes | π Click function names to open source
πΉ bcorner_move
Type: agent
Source: Open bcorner_move.cpp
- πΈ Purpose: Synchronize each BCORNER agent position with the current domain boundary coordinates.
- β¬οΈ Inputs:
- Agent variable: id
- Environment properties: COORDS_BOUNDARIES[6]
- β¬οΈ Outputs:
- Updated BCORNER position (x, y, z)
- π Notes:
- BCORNER ids 1..8 map to the eight corners of the simulation box.
Type: agent
Source: Open bcorner_output_location_data.cpp
- πΈ Purpose: Publish BCORNER identifiers and coordinates to spatial messages.
- β¬οΈ Inputs:
- Agent variables: id, x, y, z
- β¬οΈ Outputs:
- MessageSpatial3D payload for downstream consumers
πΉ cell_MaxID_update
Type: agent
Source: Open cell_MaxID_update.cpp
- πΈ Purpose: Synchronize the agent's max_global_cell_id variable with the environment macro property.
- β¬οΈ Inputs:
- Environment macro property: MACRO_MAX_GLOBAL_CELL_ID
- β¬οΈ Outputs:
- Updated agent variable: max_global_cell_id
Type: agent
Source: Open cell_bucket_location_data.cpp
- πΈ Purpose: Export CELL state required by bucket-based readers (e.g., focal adhesion updates).
- β¬οΈ Inputs:
- CELL variables: id, position, orientation, anchor arrays
- β¬οΈ Outputs:
- MessageBucket keyed by CELL id containing anchor geometry and pose
πΉ cc_clampf
Type: helper
Source: Open cell_cell_interaction.cpp
- πΈ Purpose: Clamp a scalar to the closed interval [lo, hi].
- β¬οΈ Inputs:
- x: value to clamp
- lo: lower bound
- hi: upper bound
- β¬οΈ Outputs:
- Returns clamped value
πΉ cc_normalize3
Type: helper
Source: Open cell_cell_interaction.cpp
- πΈ Purpose: Normalize a 3D vector in-place; if near-zero, sets a default unit vector.
- β¬οΈ Inputs:
- x, y, z: vector components (modified)
- β¬οΈ Outputs:
- x, y, z: normalized vector components
Type: agent
Source: Open cell_cell_interaction.cpp
- πΈ Purpose: Compute short-range CELL-CELL mechanics with strong contact repulsion and weak finite-range adhesion shell (soft cohesion) to promote aggregate compactness while allowing escape under other motility cues.
- β¬οΈ Inputs:
- cell_spatial_location_message (spatial neighbors)
- Environment interaction parameters
- β¬οΈ Outputs:
- Per-cell interaction velocity contribution (cc_dv*) [um/s]
πΉ vec3Div
Type: helper
Source: Open cell_cycle.cpp
- πΈ Purpose: Divide a 3D vector (x, y, z) by a scalar divisor in-place.
- β¬οΈ Inputs:
- x, y, z: vector components (modified)
- divisor: scalar value
- β¬οΈ Outputs:
- x, y, z: scaled vector components
πΉ vec3Length
Type: helper
Source: Open cell_cycle.cpp
- πΈ Purpose: Compute the Euclidean length of a 3D vector (x, y, z).
- β¬οΈ Inputs:
- x, y, z: vector components
- β¬οΈ Outputs:
- Returns the magnitude of the vector
πΉ cell_cycle
Type: agent
Source: Open cell_cycle.cpp
- πΈ Purpose: Agent function for cell cycle progression, division, and death. Handles cell phase transitions, damage accumulation, and division logic.
- β¬οΈ Inputs:
- CELL agent variables: id, cell_type, position, orientation, metabolic rates, anchor arrays, etc.
- Environment properties: cell cycle timings, thresholds, rates
- β¬οΈ Outputs:
- Updated cell state variables (phase, clock, damage, division, daughter creation)
- π Notes:
- Dead cells may remain ALIVE for agent purposes if DEAD_CELLS_DISAPPEAR is set.
- Division logic includes randomization and mass/anchor inheritance.
Type: agent
Source: Open cell_ecm_interaction_metabolism.cpp
- πΈ Purpose: Couple each CELL to its nearest ECM voxel for species exchange and run intracellular metabolic reactions with mass-consistent updates.
- β¬οΈ Inputs:
- CELL position/volume and metabolic rate arrays
- ECM voxel concentration fields read from Array3D
- β¬οΈ Outputs:
- Updated CELL species amounts/concentrations
- Atomic updates to ECM concentration macro-property (C_SP_MACRO)
πΉ cell_fnode_repulsion
Type: agent
Source: Open cell_fnode_repulsion.cpp
- πΈ Purpose: Prevent CELL centers from approaching FNODE points closer than an exclusion distance by adding a short-range repulsive velocity component.
- β¬οΈ Inputs:
- fnode_spatial_location_message (spatial neighbors)
- Environment interaction parameters
- β¬οΈ Outputs:
- Per-cell FNODE interaction velocity contribution (cf_dv*) [um/s]
πΉ clampf
Type: helper
Source: Open cell_focad_update.cpp
- πΈ Purpose: Clamps a scalar to the closed interval [lo, hi].
πΉ safeInv
Type: helper
Source: Open cell_focad_update.cpp
- πΈ Purpose: Returns 1/x when |x| > eps, otherwise returns 0.
πΉ normalize3
Type: helper
Source: Open cell_focad_update.cpp
- πΈ Purpose: Normalizes a 3D vector in-place; if near-zero, sets a default unit vector.
πΉ swapf
Type: helper
Source: Open cell_focad_update.cpp
- πΈ Purpose: Swaps two floats by reference.
πΉ swap_col3
Type: helper
Source: Open cell_focad_update.cpp
- πΈ Purpose: Swaps two columns of a 3x3 matrix (used for eigenvector column reordering).
πΉ eig_sym_3x3
Type: helper
Source: Open cell_focad_update.cpp
- πΈ Purpose: Jacobi eigendecomposition for a real symmetric 3x3 matrix:
- β¬οΈ Outputs:
- Eigenvalues l1, l2, l3
- Corresponding eigenvectors (v1, v2, v3)
πΉ cell_focad_update
Type: agent
Source: Open cell_focad_update.cpp
- πΈ Purpose: Reads all focal adhesion (FOCAD) messages in a bucket keyed by this cell id.
πΉ cell_move
Type: agent
Source: Open cell_move.cpp
- πΈ Purpose: Update CELL velocity/orientation-driven migration by combining Brownian, chemotactic, and durotactic components, then advance position.
- β¬οΈ Inputs:
- CELL kinematic state, stress/strain eigensystem, chemotaxis sensitivities
- Environment controls for chemotaxis/durotaxis and timestep
- β¬οΈ Outputs:
- Updated CELL position, velocity, orientation-aligned motion state
Type: agent
Source: Open cell_spatial_location_data.cpp
- πΈ Purpose: Broadcast CELL kinematics and metabolic parameters over a spatial message list.
- β¬οΈ Inputs:
- CELL variables: id, x,y,z, vx,vy,vz
- Species arrays: k_consumption, k_production, k_reaction, C_sp, M_sp
- β¬οΈ Outputs:
- MessageSpatial3D record for nearby agent queries
πΉ ecm_Csp_update
Type: agent
Source: Open ecm_Csp_update.cpp
- πΈ Purpose: Refresh each ECM voxel concentration array from the global macro property buffer.
- β¬οΈ Inputs:
- Agent variable: grid_lin_id
- Environment macro property: C_SP_MACRO
- β¬οΈ Outputs:
- Updated per-agent C_sp array
- π Notes:
- This is the synchronization bridge from macro-level concentration updates
- back into per-agent concentration variables.
πΉ vec3CrossProd
Type: helper
Source: Open ecm_Dsp_update.cpp
- πΈ Purpose: Compute the cross product of two 3D vectors and store result in (x, y, z).
- β¬οΈ Inputs:
- x1, y1, z1: first vector
- x2, y2, z2: second vector
- β¬οΈ Outputs:
- x, y, z: cross product result (modified)
πΉ vec3Div
Type: helper
Source: Open ecm_Dsp_update.cpp
- πΈ Purpose: Divide a 3D vector (x, y, z) by a scalar divisor in-place.
- β¬οΈ Inputs:
- x, y, z: vector components (modified)
- divisor: scalar value
- β¬οΈ Outputs:
- x, y, z: scaled vector components
πΉ vec3Length
Type: helper
Source: Open ecm_Dsp_update.cpp
- πΈ Purpose: Compute the Euclidean length of a 3D vector (x, y, z).
- β¬οΈ Inputs:
- x, y, z: vector components
- β¬οΈ Outputs:
- Returns the magnitude of the vector
πΉ vec3Normalize
Type: helper
Source: Open ecm_Dsp_update.cpp
- πΈ Purpose: Normalize a 3D vector in-place using its length.
- β¬οΈ Inputs:
- x, y, z: vector components (modified)
- β¬οΈ Outputs:
- x, y, z: normalized vector components
πΉ ecm_Dsp_update
Type: agent
Source: Open ecm_Dsp_update.cpp
- πΈ Purpose: Compute local FNODE crowding around each ECM voxel and downscale diffusion coefficients to represent heterogeneous transport in dense regions.
- β¬οΈ Inputs:
- Spatial FNODE messages around each ECM position
- Environment controls: equilibrium distance, average voxel density
- β¬οΈ Outputs:
- Updated D_sp array per ECM agent
Type: agent
Source: Open ecm_boundary_concentration_conditions.cpp
- πΈ Purpose: Apply boundary concentration conditions to ECM agents located near domain faces.
- β¬οΈ Inputs:
- ECM position and current species concentrations
- Boundary positions and boundary concentration macro properties
- β¬οΈ Outputs:
- Updated agent C_sp and synchronized C_SP_MACRO values for touched boundaries
πΉ vec3CrossProd
Type: helper
Source: Open ecm_ecm_interaction.cpp
- πΈ Purpose: Compute the cross product of two 3D vectors and store result in (x, y, z).
- β¬οΈ Inputs:
- x1, y1, z1: first vector
- x2, y2, z2: second vector
- β¬οΈ Outputs:
- x, y, z: cross product result (modified)
πΉ vec3Div
Type: helper
Source: Open ecm_ecm_interaction.cpp
- πΈ Purpose: Divide a 3D vector (x, y, z) by a scalar divisor in-place.
- β¬οΈ Inputs:
- x, y, z: vector components (modified)
- divisor: scalar value
- β¬οΈ Outputs:
- x, y, z: scaled vector components
πΉ vec3Length
Type: helper
Source: Open ecm_ecm_interaction.cpp
- πΈ Purpose: Compute the Euclidean length of a 3D vector (x, y, z).
- β¬οΈ Inputs:
- x, y, z: vector components
- β¬οΈ Outputs:
- Returns the magnitude of the vector
πΉ vec3Normalize
Type: helper
Source: Open ecm_ecm_interaction.cpp
- πΈ Purpose: Normalize a 3D vector in-place using its length.
- β¬οΈ Inputs:
- x, y, z: vector components (modified)
- β¬οΈ Outputs:
- x, y, z: normalized vector components
πΉ getAngleBetweenVec
Type: helper
Source: Open ecm_ecm_interaction.cpp
- πΈ Purpose: Compute the angle (in radians) between two 3D vectors.
- β¬οΈ Inputs:
- x1, y1, z1: first vector
- x2, y2, z2: second vector
- β¬οΈ Outputs:
- Returns angle in radians
πΉ ecm_ecm_interaction
Type: agent
Source: Open ecm_ecm_interaction.cpp
- πΈ Purpose: Execute ECM voxel-to-voxel mechanical coupling and multi-species diffusion on the same neighborhood pass.
- β¬οΈ Inputs:
- Array3D ECM neighborhood messages (positions, velocities, concentrations)
- Environment controls for diffusion mode, timestep, and mechanics
- β¬οΈ Outputs:
- Updated ECM mechanical forces (fx, fy, fz)
- Updated concentration state C_sp and C_SP_MACRO entries
- π Notes:
- Includes the semi-implicit diffusion branch used to prevent unstable Euler
- blow-up when diffusion CFL-like conditions are violated.
Type: agent
Source: Open ecm_grid_location_data.cpp
- πΈ Purpose: Publish ECM voxel-centered state into the Array3D message for neighborhood reads.
- β¬οΈ Inputs:
- ECM grid coordinates and linear index
- Mechanical and diffusion-related voxel variables
- β¬οΈ Outputs:
- MessageArray3D entry indexed by (grid_i, grid_j, grid_k)
πΉ boundPosition
Type: helper
Source: Open ecm_move.cpp
- πΈ Purpose: Clamp ECM agent coordinates against moving boundaries and update per-axis clamp flags when contact conditions are met.
πΉ ecm_move
Type: agent
Source: Open ecm_move.cpp
- πΈ Purpose: Advance ECM agent motion from accumulated forces, then enforce boundary clamping/sliding rules and boundary-driven kinematics.
- β¬οΈ Inputs:
- ECM force, velocity, clamp state, and boundary/environment parameters
- β¬οΈ Outputs:
- Updated position, velocity, clamp flags, and boundary force channels
Type: agent
Source: Open fnode_boundary_interaction.cpp
- πΈ Purpose: Compute boundary reaction forces on FNODE agents near domain boundaries, including optional elastic and damping contributions per face.
- β¬οΈ Inputs:
- FNODE position/velocity
- Boundary coordinates, stiffness/damping, and movement settings
- β¬οΈ Outputs:
- boundary_fx, boundary_fy, boundary_fz stored on each FNODE
Type: agent
Source: Open fnode_bucket_location_data.cpp
- πΈ Purpose: Export FNODE state and connectivity arrays into a bucket message keyed by node id.
- β¬οΈ Inputs:
- FNODE kinematics and material parameters
- Connectivity arrays: linked_nodes, equilibrium_distance
- β¬οΈ Outputs:
- MessageBucket record for direct id-based neighbor access
Type: agent
Source: Open fnode_fnode_bucket_interaction.cpp
- πΈ Purpose: Compute spring-damper forces along explicit FNODE connectivity links and accumulate network mechanical metrics (extension/compression/elastic energy).
- β¬οΈ Inputs:
- Bucket messages keyed by linked node ids
- Connectivity arrays and per-link equilibrium distances
- β¬οΈ Outputs:
- Updated FNODE force components and mechanical summary variables
Type: agent
Source: Open fnode_fnode_spatial_interaction.cpp
- πΈ Purpose: Apply short-range repulsion between nearby FNODE agents to prevent overlap.
- β¬οΈ Inputs:
- Spatial FNODE neighbor messages
- Environment parameters: MAX_SEARCH_RADIUS_FNODES, FIBRE_NODE_REPULSION_K
- β¬οΈ Outputs:
- Updated repulsive force components (fx, fy, fz) on each FNODE
Type: agent
Source: Open fnode_focad_interaction.cpp
- πΈ Purpose: Transfer precomputed FOCAD traction forces onto the corresponding FNODE.
- β¬οΈ Inputs:
- Spatial FOCAD messages containing force and attachment status
- FNODE id/position/force state
- β¬οΈ Outputs:
- Updated FNODE force components (fx, fy, fz)
- π Notes:
- This function is scheduled after focad_fnode_interaction, which computes
- and stores the adhesion force on each FOCAD agent.
πΉ boundPosition
Type: helper
Source: Open fnode_move.cpp
- πΈ Purpose: Clamp FNODE coordinates near boundaries and update clamp state flags based on contact and configuration flags.
πΉ fnode_move
Type: agent
Source: Open fnode_move.cpp
- πΈ Purpose: Update FNODE positions/velocities under internal, boundary, and transmitted forces while enforcing clamp and sliding boundary behavior.
- β¬οΈ Inputs:
- FNODE force channels (network + boundary), current kinematics, clamp flags
- Boundary movement/clamping parameters from the environment
- β¬οΈ Outputs:
- Updated node kinematics, clamp state, and boundary force contributions
Type: agent
Source: Open fnode_spatial_location_data.cpp
- πΈ Purpose: Broadcast FNODE position for spatial proximity queries.
- β¬οΈ Inputs:
- FNODE variables: id, x, y, z
- β¬οΈ Outputs:
- MessageSpatial3D payload used by FNODE/FOCAD interaction kernels
πΉ focad_anchor_update
Type: agent
Source: Open focad_anchor_update.cpp
- πΈ Purpose: Re-anchor each FOCAD agent to a CELL nucleus anchor point read from bucket messages keyed by cell_id.
- β¬οΈ Inputs:
- MessageBucket from CELL containing nucleus pose and anchor arrays
- Current FOCAD position and cell association
- β¬οΈ Outputs:
- Updated FOCAD nucleus center/orientation and selected anchor (x_i,y_i,z_i)
- π Notes:
- If no fixed anchor_id exists, the closest anchor point is selected each step.
Type: agent
Source: Open focad_bucket_location_data.cpp
- πΈ Purpose: Publish full FOCAD state for bucket-keyed readers (mainly CELL/FOCAD coupling steps).
- β¬οΈ Inputs:
- FOCAD identifiers, kinematics, mechanics, lifecycle flags and timers
- β¬οΈ Outputs:
- MessageBucket keyed by cell_id with adhesion state and force data
Type: agent
Source: Open focad_fnode_interaction.cpp
- πΈ Purpose: Manage FOCAD-FNODE attachment dynamics and compute traction forces stored on FOCAD for subsequent FNODE-side force transfer.
- β¬οΈ Inputs:
- Spatial FNODE messages near each FOCAD
- FOCAD mechanics/lifecycle state and environment kinetics parameters
- β¬οΈ Outputs:
- Updated adhesion attachment state, lifecycle timers/state, and force
- π Notes:
- Scheduled before fnode_focad_interaction so computed traction can be read
- and applied to the linked FNODE.
πΉ focad_move
Type: agent
Source: Open focad_move.cpp
- πΈ Purpose: Update focal adhesion positions by either following attached FNODEs or executing bounded exploratory motion when detached/inactive.
- β¬οΈ Inputs:
- FOCAD state: attachment flags, anchor position, velocity, fnode_id
- FNODE bucket messages (for attached movement)
- Domain and adhesion motion constraints from environment
- β¬οΈ Outputs:
- Updated FOCAD position/velocity within boundary limits
Type: agent
Source: Open focad_post_cycle_update.cpp
- πΈ Purpose: Update FOCAD anchor association after cell division, switching anchor points between parent and daughter cells. Ensures spatial and orientation variables are updated for correct cell association.
- β¬οΈ Inputs:
- FOCAD agent variables: cell_id, anchor_id, spatial coordinates
- MessageBucket: parent cell state
- Environment: N_ANCHOR_POINTS
- β¬οΈ Outputs:
- Updated anchor_id, spatial variables, cell association
- π Notes:
- Uses a two-pass loop to select the correct target message, avoiding duplicated anchor update code.
- Pass 0: For parent cell, require just_divided message (ensures correct anchor after division).
- Pass 1: Fallback, accept any available message if none found in pass 0.
Type: agent
Source: Open focad_spatial_location_data.cpp
- πΈ Purpose: Broadcast active adhesion position/force state for local spatial interaction queries.
- β¬οΈ Inputs:
- FOCAD variables: id, x,y,z, fx,fy,fz, fnode_id, attached, active
- β¬οΈ Outputs:
- MessageSpatial3D payload consumed by FNODE-side force transfer
πΉ vec3CrossProd
Type: helper
Source: Open handy_device_functions_template.cpp
- πΈ Purpose: Provide reusable device-side vector algebra helpers for interaction kernels.
- π Notes:
- This file is a template/reference module and is intended for copy-paste use
- inside runtime-compiled FLAMEGPU agent function files.
- vec3CrossProd: compute cross product (x1,y1,z1) x (x2,y2,z2).