chrono::host_container Struct Reference

Description

Structure of arrays containing simulation data.

#include <ChDataManager.h>

Public Attributes

custom_vector< real3aabb_min
 List of bounding boxes minimum point.
 
custom_vector< real3aabb_max
 List of bounding boxes maximum point.
 
custom_vector< real3aabb_min_tet
 List of bounding boxes minimum point for tets.
 
custom_vector< real3aabb_max_tet
 List of bounding boxes maximum point for tets.
 
custom_vector< long long > contact_pairs
 Contact pairs (encoded in a single long log)
 
custom_vector< real3norm_rigid_rigid
 
custom_vector< real3cpta_rigid_rigid
 
custom_vector< real3cptb_rigid_rigid
 
custom_vector< real > dpth_rigid_rigid
 
custom_vector< real > erad_rigid_rigid
 
custom_vector< vec2 > bids_rigid_rigid
 
custom_vector< real3norm_rigid_fluid
 
custom_vector< real3cpta_rigid_fluid
 
custom_vector< real > dpth_rigid_fluid
 
custom_vector< int > neighbor_rigid_fluid
 
custom_vector< int > c_counts_rigid_fluid
 
custom_vector< int > neighbor_3dof_3dof
 
custom_vector< int > c_counts_3dof_3dof
 
custom_vector< int > particle_indices_3dof
 
custom_vector< int > reverse_mapping_3dof
 
custom_vector< real3norm_rigid_tet
 
custom_vector< real3cpta_rigid_tet
 
custom_vector< real3cptb_rigid_tet
 
custom_vector< real > dpth_rigid_tet
 
custom_vector< int > neighbor_rigid_tet
 
custom_vector< real4face_rigid_tet
 
custom_vector< int > c_counts_rigid_tet
 
custom_vector< real3norm_rigid_tet_node
 
custom_vector< real3cpta_rigid_tet_node
 
custom_vector< real > dpth_rigid_tet_node
 
custom_vector< int > neighbor_rigid_tet_node
 
custom_vector< int > c_counts_rigid_tet_node
 
custom_vector< real3norm_marker_tet
 
custom_vector< real3cpta_marker_tet
 
custom_vector< real3cptb_marker_tet
 
custom_vector< real > dpth_marker_tet
 
custom_vector< int > neighbor_marker_tet
 
custom_vector< real4face_marker_tet
 
custom_vector< int > c_counts_marker_tet
 
custom_vector< real3ct_body_force
 Total contact force on bodies.
 
custom_vector< real3ct_body_torque
 Total contact torque on these bodies.
 
custom_vector< vec3 > shear_neigh
 Neighbor list of contacting bodies and shapes.
 
custom_vector< real3shear_disp
 Accumulated shear displacement for each neighbor.
 
custom_vector< real > contact_relvel_init
 Initial relative normal velocity manitude per contact pair.
 
custom_vector< real > contact_duration
 Accumulated contact duration, per contact pair.
 
custom_vector< int > ct_body_map
 Mapping from all bodies in the system to bodies involved in a contact. More...
 
custom_vector< real3fric_rigid_rigid
 This vector holds the friction information (composite material) as a triplet: x - Sliding friction, y - Rolling friction, z - Spinning Friction. More...
 
custom_vector< real > coh_rigid_rigid
 Holds the cohesion value (composite material) for each contact. More...
 
custom_vector< real4compliance_rigid_rigid
 Precomputed compliance (composite material) values for all contacts. More...
 
custom_vector< real2modulus_rigid_rigid
 Precomputed composite material quantities for SMC only. More...
 
custom_vector< real3adhesion_rigid_rigid
 adhesion_eff, adhesionMultDMT_eff, and adhesionSPerko_eff
 
custom_vector< real > cr_rigid_rigid
 cr_eff (effective coefficient of restitution)
 
custom_vector< real4smc_rigid_rigid
 kn, kt, gn, gt
 
custom_vector< real3pos_rigid
 
custom_vector< quaternionrot_rigid
 
custom_vector< char > active_rigid
 
custom_vector< char > collide_rigid
 
custom_vector< real > mass_rigid
 
custom_vector< real3pos_3dof
 
custom_vector< real3sorted_pos_3dof
 
custom_vector< real3vel_3dof
 
custom_vector< real3sorted_vel_3dof
 
custom_vector< real3pos_node_fea
 
custom_vector< real3vel_node_fea
 
custom_vector< real > mass_node_fea
 
custom_vector< uvec4 > tet_indices
 
custom_vector< uvec4 > boundary_triangles_fea
 
custom_vector< uint > boundary_node_fea
 
custom_vector< uint > boundary_element_fea
 
custom_vector< short2 > boundary_family_fea
 
custom_vector< int > bilateral_type
 Bilateral constraint type (all supported constraints)
 
custom_vector< int > bilateral_mapping
 Keeps track of active bilateral constraints.
 
custom_vector< real > shaft_rot
 shaft rotation angles
 
custom_vector< real > shaft_inr
 shaft inverse inertias
 
custom_vector< char > shaft_active
 shaft active (not sleeping nor fixed) flags
 
custom_vector< float > sliding_friction
 sliding coefficients of friction
 
custom_vector< float > cohesion
 constant cohesion forces
 
CompressedMatrix< real > Nshur
 This matrix, if used will hold D^TxM^-1xD in sparse form.
 
CompressedMatrix< real > D
 The D Matrix hold the Jacobian for the entire system.
 
CompressedMatrix< real > D_T
 D_T is the transpose of the D matrix, note that D_T is actually computed first and D is taken as the transpose. More...
 
CompressedMatrix< real > M_inv
 M_inv is the inverse mass matrix, This matrix, if holding the full inertia tensor is block diagonal.
 
CompressedMatrix< real > M
 
CompressedMatrix< real > M_invD
 Minv_D holds M_inv multiplied by D, this is done as a preprocessing step so that later, when the full matrix vector product is needed it can be performed in two steps, first R = Minv_D*x, and then D_T*R where R is just a temporary variable used here for illustrative purposes. More...
 
DynamicVector< real > R_full
 The right hand side of the system.
 
DynamicVector< real > R
 The rhs of the system, changes during solve.
 
DynamicVector< real > b
 Correction terms.
 
DynamicVector< real > s
 
DynamicVector< real > M_invk
 Result of M_inv multiplied by vector of forces.
 
DynamicVector< real > gamma
 The unknowns we are solving for.
 
DynamicVector< real > v
 This vector holds the velocities for all objects.
 
DynamicVector< real > hf
 This vector holds h*forces, h is time step.
 
DynamicVector< real > E
 While E is the compliance matrix, in reality it is completely diagonal therefore it is stored in a vector for performance reasons.
 
DynamicVector< real > Fc
 
custom_vector< uint > bin_intersections
 
custom_vector< uint > bin_number
 
custom_vector< uint > bin_number_out
 
custom_vector< uint > bin_aabb_number
 
custom_vector< uint > bin_start_index
 
custom_vector< uint > bin_num_contact
 

Member Data Documentation

◆ coh_rigid_rigid

custom_vector<real> chrono::host_container::coh_rigid_rigid

Holds the cohesion value (composite material) for each contact.

Similar to friction this is precomputed for all contacts in parallel. Used for NSC only.

◆ compliance_rigid_rigid

custom_vector<real4> chrono::host_container::compliance_rigid_rigid

Precomputed compliance (composite material) values for all contacts.

Used for NSC only.

◆ ct_body_map

custom_vector<int> chrono::host_container::ct_body_map

Mapping from all bodies in the system to bodies involved in a contact.

For bodies that are currently not in contact, the mapping entry is -1. Otherwise, the mapping holds the appropriate index in the vectors above.

◆ D_T

CompressedMatrix<real> chrono::host_container::D_T

D_T is the transpose of the D matrix, note that D_T is actually computed first and D is taken as the transpose.

This is due to the way that blaze handles sparse matrix allocation, it is easier to do it on a per row basis.

◆ fric_rigid_rigid

custom_vector<real3> chrono::host_container::fric_rigid_rigid

This vector holds the friction information (composite material) as a triplet: x - Sliding friction, y - Rolling friction, z - Spinning Friction.

This is precomputed at every timestep for all contacts in parallel. Improves performance and reduces conditionals later on.

◆ M_invD

CompressedMatrix<real> chrono::host_container::M_invD

Minv_D holds M_inv multiplied by D, this is done as a preprocessing step so that later, when the full matrix vector product is needed it can be performed in two steps, first R = Minv_D*x, and then D_T*R where R is just a temporary variable used here for illustrative purposes.

In reality the entire operation happens inline without a temp variable.

◆ modulus_rigid_rigid

custom_vector<real2> chrono::host_container::modulus_rigid_rigid

Precomputed composite material quantities for SMC only.

E_eff and G_eff


The documentation for this struct was generated from the following file:
  • /builds/uwsbel/chrono/src/chrono_parallel/ChDataManager.h