Unilateral constraints
Description
Collaboration diagram for Unilateral constraints:
Classes | |
class | chrono::ChConstraintBilateral |
Bilateral (joint) constraints. More... | |
class | chrono::ChConstraintRigidRigid |
Unilateral (contact) constraints. More... | |
Macros | |
#define | Loop_Over_Rigid_Neighbors(X) |
#define | Loop_Over_Fluid_Neighbors(X) |
Functions | |
CH_MULTICORE_API void | chrono::Orthogonalize (const real3 &Vx, real3 &Vy, real3 &Vz) |
CH_MULTICORE_API void | chrono::Compute_Jacobian (const quaternion &quat, const real3 &U, const real3 &V, const real3 &W, const real3 &point, real3 &T1, real3 &T2, real3 &T3) |
CH_MULTICORE_API void | chrono::Compute_Jacobian_Rolling (const quaternion &quat, const real3 &U, const real3 &V, const real3 &W, real3 &T1, real3 &T2, real3 &T3) |
CH_MULTICORE_API bool | chrono::Cone_generalized_rigid (real &gamma_n, real &gamma_u, real &gamma_v, real mu) |
CH_MULTICORE_API bool | chrono::Cone_single_rigid (real &gamma_n, real &gamma_s, real mu) |
CH_MULTICORE_API void | chrono::AppendRigidFluidBoundary (const real contact_mu, const uint num_fluid_bodies, const uint body_offset, const uint start_boundary, ChMulticoreDataManager *data_manager) |
CH_MULTICORE_API void | chrono::ProjectRigidFluidBoundary (const real contact_mu, const real contact_cohesion, const uint num_fluid_bodies, const uint start_boundary, real *gamma, ChMulticoreDataManager *data_manager) |
CH_MULTICORE_API void | chrono::ComplianceRigidFluidBoundary (const real contact_mu, const real contact_compliance, const real alpha, const uint start_boundary, ChMulticoreDataManager *data_manager) |
CH_MULTICORE_API void | chrono::CorrectionRigidFluidBoundary (const real contact_mu, const real contact_cohesion, const real alpha, const real contact_recovery_speed, const uint num_fluid_bodies, const uint start_boundary, ChMulticoreDataManager *data_manager) |
CH_MULTICORE_API void | chrono::BuildRigidFluidBoundary (const real contact_mu, const uint num_fluid_bodies, const uint body_offset, const uint start_boundary, ChMulticoreDataManager *data_manager) |
Macro Definition Documentation
◆ Loop_Over_Fluid_Neighbors
#define Loop_Over_Fluid_Neighbors | ( | X | ) |
Value:
for (int body_a = 0; body_a < (signed)num_fluid_bodies; body_a++) { \
real3 pos_p = sorted_pos[body_a]; \
for (int i = 0; i < data_manager->host_data.c_counts_3dof_3dof[body_a]; i++) { \
int body_b = data_manager->host_data.neighbor_3dof_3dof[body_a * max_neighbors + i]; \
if (body_a == body_b) { \
continue; \
} \
if (body_a > body_b) { \
continue; \
} \
real3 xij = pos_p - sorted_pos[body_b]; \
X; \
index++; \
} \
}
◆ Loop_Over_Rigid_Neighbors
#define Loop_Over_Rigid_Neighbors | ( | X | ) |
Value:
for (int p = 0; p < (signed)num_fluid_bodies; p++) { \
int start = contact_counts[p]; \
int end = contact_counts[p + 1]; \
for (int index = start; index < end; index++) { \
int i = index - start; \
X \
} \
}