Description
Structure of arrays containing simulation data.
#include <ChDataManager.h>
Public Attributes | |
custom_vector< real3 > | aabb_min |
List of bounding boxes minimum point. | |
custom_vector< real3 > | aabb_max |
List of bounding boxes maximum point. | |
custom_vector< real3 > | aabb_min_tet |
List of bounding boxes minimum point for tets. | |
custom_vector< real3 > | aabb_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< real3 > | norm_rigid_rigid |
custom_vector< real3 > | cpta_rigid_rigid |
custom_vector< real3 > | cptb_rigid_rigid |
custom_vector< real > | dpth_rigid_rigid |
custom_vector< real > | erad_rigid_rigid |
custom_vector< vec2 > | bids_rigid_rigid |
custom_vector< real3 > | norm_rigid_fluid |
custom_vector< real3 > | cpta_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< real3 > | norm_rigid_tet |
custom_vector< real3 > | cpta_rigid_tet |
custom_vector< real3 > | cptb_rigid_tet |
custom_vector< real > | dpth_rigid_tet |
custom_vector< int > | neighbor_rigid_tet |
custom_vector< real4 > | face_rigid_tet |
custom_vector< int > | c_counts_rigid_tet |
custom_vector< real3 > | norm_rigid_tet_node |
custom_vector< real3 > | cpta_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< real3 > | norm_marker_tet |
custom_vector< real3 > | cpta_marker_tet |
custom_vector< real3 > | cptb_marker_tet |
custom_vector< real > | dpth_marker_tet |
custom_vector< int > | neighbor_marker_tet |
custom_vector< real4 > | face_marker_tet |
custom_vector< int > | c_counts_marker_tet |
custom_vector< real3 > | ct_body_force |
Total contact force on bodies. | |
custom_vector< real3 > | ct_body_torque |
Total contact torque on these bodies. | |
custom_vector< vec3 > | shear_neigh |
Neighbor list of contacting bodies and shapes. | |
custom_vector< real3 > | shear_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< real3 > | fric_rigid_rigid |
This vector holds the friction information as a triplet: x - Sliding friction, y - Rolling friction, z - Spinning Friction. More... | |
custom_vector< real > | coh_rigid_rigid |
Holds the cohesion value for each contact. More... | |
custom_vector< real4 > | compliance_rigid_rigid |
Precomputed compliance values for all contacts. | |
custom_vector< real3 > | pos_rigid |
custom_vector< quaternion > | rot_rigid |
custom_vector< char > | active_rigid |
custom_vector< char > | collide_rigid |
custom_vector< real > | mass_rigid |
custom_vector< real3 > | pos_3dof |
custom_vector< real3 > | sorted_pos_3dof |
custom_vector< real3 > | vel_3dof |
custom_vector< real3 > | sorted_vel_3dof |
custom_vector< real3 > | pos_node_fea |
custom_vector< real3 > | vel_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< real3 > | fric_data |
friction information (sliding, rolling, spinning) | |
custom_vector< real > | cohesion_data |
constant cohesion forces (NSC and SMC) | |
custom_vector< real4 > | compliance_data |
compliance (NSC only) | |
custom_vector< real2 > | elastic_moduli |
Young's modulus and Poisson ratio (SMC only) | |
custom_vector< real > | mu |
Coefficient of friction (SMC only) | |
custom_vector< real > | muRoll |
Coefficient of rolling friction (SMC only) | |
custom_vector< real > | muSpin |
Coefficient of spinning friction (SMC only) | |
custom_vector< real > | cr |
Coefficient of restitution (SMC only) | |
custom_vector< real4 > | smc_coeffs |
Stiffness and damping coefficients (SMC only) | |
custom_vector< real > | adhesionMultDMT_data |
Adhesion multipliers used in DMT model (SMC only) | |
custom_vector< real > | adhesionSPerko_data |
Adhesion multipliers used in Perko model (SMC only) | |
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 for each contact.
Similar to friction this is precomputed for all contacts in parallel.
◆ 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 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.
The documentation for this struct was generated from the following file:
- /builds/uwsbel/chrono/src/chrono_parallel/ChDataManager.h