chrono::granular Namespace Reference
Description
Namespace with classes for the Granular module.
Classes | |
struct | BC_params_t |
big enum to handle all possible boundary conditions More... | |
struct | ChGranMeshFamilyFrame |
Position and rotation matrix defining the frame of a triangle mesh. More... | |
struct | ChGranParams |
Parameters needed for sphere-based granular dynamics. More... | |
struct | ChGranParams_trimesh |
Extra parameters needed for triangle-sphere contact. More... | |
struct | ChGranSphereData |
Holds pointers to kinematic quantities of the granular system. These pointers must be in device-accessible memory. More... | |
class | ChSystemGranularSMC |
Main Chrono::Granular system class used to control and dispatch the GPU sphere-only solver. More... | |
class | ChSystemGranularSMC_trimesh |
Class implements functionality required to handle the interaction between a mesh soup and granular material. More... | |
struct | ChTriangleSoup |
Class used to hold pointers for mesh arrays. More... | |
struct | Plane_BC_params_t |
Infinite Plane defined by point in plane and normal. More... | |
struct | Z_Cone_BC_params_t |
Z-aligned cone pointed downward. More... | |
struct | Z_Cylinder_BC_params_t |
Infinite Z-aligned cylinder. More... | |
Typedefs | |
typedef std::function< double3(float)> | GranPositionFunction |
Used to compute position as a function of time. | |
typedef struct chrono::granular::sim_param_holder | sim_param_holder |
Enumerations | |
enum | GRAN_VERBOSITY { QUIET = 0, INFO = 1, METRICS = 2 } |
Verbosity level of the system. | |
enum | GRAN_OUTPUT_MODE { CSV, BINARY, HDF5, NONE } |
Output mode of system. | |
enum | GRAN_TIME_INTEGRATOR { FORWARD_EULER, CHUNG, CENTERED_DIFFERENCE, EXTENDED_TAYLOR } |
How are we integrating through time. | |
enum | GRAN_FRICTION_MODE { FRICTIONLESS, SINGLE_STEP, MULTI_STEP } |
Supported friction model. | |
enum | GRAN_ROLLING_MODE { NO_RESISTANCE, SCHWARTZ, ELASTIC_PLASTIC } |
Rolling resistance models – ELASTIC_PLASTIC not implemented yet. | |
enum | GRAN_OUTPUT_FLAGS { ABSV = 1, VEL_COMPONENTS = 2, FIXITY = 4, ANG_VEL_COMPONENTS = 8 } |
enum | BC_type { SPHERE, CONE, PLANE, CYLINDER } |
Functions | |
std::string | chrono_granular_data_path ("../data/granular/") |
void | SetDataPath (const std::string &path) |
Set the path to the Chrono::Granular data directory (ATTENTION: not thread safe). | |
const std::string & | GetDataPath () |
Get the current path to the Chrono::Granular data directory (thread safe). | |
std::string | GetDataFile (const std::string &filename) |
Get the complete path to the specified filename (thread safe). More... | |
void | ShowJSONUsage () |
void | InvalidArg (string arg) |
bool | ParseJSON (const char *json_file, sim_param_holder ¶ms, bool verbose=true) |
template<typename Real > | |
std::vector< ChVector< Real > > | MeshSphericalDecomposition (std::string objfilename, ChVector< Real > scaling, ChVector< Real > offset, Real sphere_radius) |
Decompose a given triangle mesh surface into a minimally-overlapping collection of spheres. More... | |
Variables | |
const GranPositionFunction | GranPosFunction_default = [](float t) { return make_double3(0, 0, 0); } |
Position function representing no motion or offset as a funtion of time. | |
Function Documentation
◆ MeshSphericalDecomposition()
template<typename Real >
std::vector<ChVector<Real> > chrono::granular::MeshSphericalDecomposition | ( | std::string | objfilename, |
ChVector< Real > | scaling, | ||
ChVector< Real > | offset, | ||
Real | sphere_radius | ||
) |
Decompose a given triangle mesh surface into a minimally-overlapping collection of spheres.
The mesh must be stored in OBJ format and must consist of only triangles. Returns the number of spheres added as a result of the decomposition.
- Parameters
-
objfilename OBJ mesh file path scaling Scaling vector to apply to the mesh before decomposition offset Displacement to apply to the mesh before decomposition sphere_radius Radius to use for all spheres in the decomposition