MULTICORE module

Description

Module for multicore parallel simulation.

This module implements multicore parallel computing algorithms that can be used as a faster alternative to the default simulation algorithms in Chrono::Engine. This is achieved using OpenMP, CUDA, Thrust, etc.

For additional information, see:

Collaboration diagram for MULTICORE module:

Modules

 Physics objects
 
 Unilateral constraints
 
 Collision objects
 
 Solvers
 
 Math utilities
 

Classes

struct  chrono::host_container
 Structure of arrays containing simulation data. More...
 
class  chrono::ChMulticoreDataManager
 Global data manager for Chrono::Multicore. More...
 
class  chrono::collision_measures
 Collision_measures. More...
 
class  chrono::solver_measures
 Solver measures. More...
 
class  chrono::measures_container
 Aggregate of collision and solver measures. More...
 
class  chrono::collision_settings
 Chrono::Multicore collision_settings. More...
 
class  chrono::solver_settings
 Chrono::Multicore solver_settings. More...
 
class  chrono::settings_container
 Aggregate of all settings for Chrono::Multicore. More...
 
struct  chrono::TimerData
 Wrapper class for a timer object. More...
 
class  chrono::ChTimerMulticore
 Utility class for managing a collection of timer objects. More...
 

Enumerations

enum  chrono::SolverType {
  chrono::SolverType::STEEPEST_DESCENT, chrono::SolverType::GRADIENT_DESCENT, chrono::SolverType::CONJUGATE_GRADIENT, chrono::SolverType::CONJUGATE_GRADIENT_SQUARED,
  chrono::SolverType::BICONJUGATE_GRADIENT, chrono::SolverType::BICONJUGATE_GRADIENT_STAB, chrono::SolverType::MINIMUM_RESIDUAL, chrono::SolverType::QUASI_MINIMUM_RESIDUAL,
  chrono::SolverType::APGD, chrono::SolverType::APGDREF, chrono::SolverType::JACOBI, chrono::SolverType::GAUSS_SEIDEL,
  chrono::SolverType::PDIP, chrono::SolverType::BB, chrono::SolverType::SPGQP
}
 Iterative solver type. More...
 
enum  chrono::SolverMode { chrono::SolverMode::NORMAL, chrono::SolverMode::SLIDING, chrono::SolverMode::SPINNING, chrono::SolverMode::BILATERAL }
 Enumeration for solver mode. More...
 
enum  chrono::SystemType { chrono::SystemType::SYSTEM_NSC, chrono::SystemType::SYSTEM_SMC }
 Enumeration for system type. More...
 
enum  chrono::BilateralType {
  chrono::BODY_BODY, chrono::SHAFT_SHAFT, chrono::SHAFT_SHAFT_SHAFT, chrono::SHAFT_BODY,
  chrono::SHAFT_SHAFT_BODY, chrono::UNKNOWN
}
 Enumeration for bilateral constraint types. More...
 
enum  chrono::LoggingLevel {
  chrono::LoggingLevel::LOG_NONE, chrono::LoggingLevel::LOG_INFO, chrono::LoggingLevel::LOG_TRACE, chrono::LoggingLevel::LOG_WARNING,
  chrono::LoggingLevel::LOG_ERROR
}
 Supported Logging Levels. More...
 

Enumeration Type Documentation

◆ BilateralType

Enumeration for bilateral constraint types.

Enumerator
BODY_BODY 

constraints between two rigid bodies

SHAFT_SHAFT 

constraints between two 1-D shaft elements

SHAFT_SHAFT_SHAFT 

constraints involving 3 1-D shaft elements

SHAFT_BODY 

constraints between a shaft and a rigid body

SHAFT_SHAFT_BODY 

constraints involving two shafts and one rigid body

UNKNOWN 

unknow constraint type

◆ LoggingLevel

enum chrono::LoggingLevel
strong

Supported Logging Levels.

Enumerator
LOG_NONE 

no logging

LOG_INFO 

info

LOG_TRACE 

tracing

LOG_WARNING 

warnings

LOG_ERROR 

errors

◆ SolverMode

enum chrono::SolverMode
strong

Enumeration for solver mode.

Enumerator
NORMAL 

solve only normal contact impulses

SLIDING 

solve for contact and sliding friction impulses

SPINNING 

solve for rolling resistance impulses

BILATERAL 

solve for bilateral Lagrange multipliers

◆ SolverType

enum chrono::SolverType
strong

Iterative solver type.

Enumerator
STEEPEST_DESCENT 

steepest descent

GRADIENT_DESCENT 

gradient descent

CONJUGATE_GRADIENT 

conjugate gradient

CONJUGATE_GRADIENT_SQUARED 

conjugate gradient squared

BICONJUGATE_GRADIENT 

BiCG.

BICONJUGATE_GRADIENT_STAB 

BiCGStab.

MINIMUM_RESIDUAL 

MINRES (minimum residual)

QUASI_MINIMUM_RESIDUAL 

Quasi MINRES.

APGD 

Accelerated Projected Gradient Descent.

APGDREF 

reference implementation for APGD

JACOBI 

Jacobi.

GAUSS_SEIDEL 

Gauss-Seidel.

PDIP 

Primal-Dual Interior Point.

BB 

Barzilai-Borwein.

SPGQP 

Spectral Projected Gradient (QP projection)

◆ SystemType

enum chrono::SystemType
strong

Enumeration for system type.

Used so that parts of the code that have been "flattened" can know what type of system is used.

Enumerator
SYSTEM_NSC 

system using non-smooth (complementarity) contact

SYSTEM_SMC 

system using smooth (penalty) contact