Skip to content

Commit

Permalink
Merge branch 'release/6.0.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
rserban committed Feb 9, 2021
2 parents 2be212d + 3fe2c1f commit 3a9e008
Show file tree
Hide file tree
Showing 3,394 changed files with 6,493,587 additions and 297,539 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,13 @@
## Directories
##---------------------------------------------------

#large data used by sensors
# /data/sensor/textures/
*.hdr

# Where you build the src
/build
.vscode

##---------------------------------------------------
## C++
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,6 @@
[submodule "src/chrono_thirdparty/googlebenchmark"]
path = src/chrono_thirdparty/googlebenchmark
url = https://github.com/google/benchmark.git
[submodule "src/chrono_thirdparty/flatbuffers"]
path = src/chrono_thirdparty/flatbuffers
url = https://github.com/google/flatbuffers.git
535 changes: 535 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
# Check backward compatibility
#-----------------------------------------------------------------------------

cmake_minimum_required(VERSION 3.0)
cmake_minimum_required(VERSION 3.10)

#-----------------------------------------------------------------------------
# Prevent in-source builds.
Expand Down Expand Up @@ -41,7 +41,7 @@ set_property(GLOBAL PROPERTY USE_FOLDERS Off)
# Define project name and specify version information
#-----------------------------------------------------------------------------

set(CHRONO_VERSION_MAJOR 5)
set(CHRONO_VERSION_MAJOR 6)
set(CHRONO_VERSION_MINOR 0)
set(CHRONO_VERSION_PATCH 0)

Expand All @@ -55,7 +55,7 @@ set(CPACK_PACKAGE_VERSION_MINOR "${CHRONO_VERSION_MINOR}")
set(CPACK_PACKAGE_VERSION_PATCH "${CHRONO_VERSION_PATCH}")

# Version as a hexadecimal integer of the form 0x00MMmmPP
set(CH_VERSION 0x00050000)
set(CH_VERSION 0x00060000)

#-----------------------------------------------------------------------------
# Location of additional CMake scripts
Expand Down
15 changes: 0 additions & 15 deletions HOWTO_COMPILE_API.txt

This file was deleted.

26 changes: 19 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,29 @@
Project CHRONO
==============

Project Chrono represents a community effort aimed at producing a physics-based modelling and simulation infrastructure based on a platform-independent, open-source design. The name of this software infrastructure is Chrono. Some of its features are listed below. More information is available at the [project website](http://www.projectchrono.org/). The applications areas in which Chrono is most often used are **vehicle dynamics**, **robotics**, and **machine design**. In vehicle dynamics, Chrono has mature support for tire/terrain interaction modeling and simulation.
[![pipeline status](https://gitlab.com/uwsbel/chrono/badges/develop/pipeline.svg)](https://gitlab.com/uwsbel/chrono/commits/develop)
[![BSD License](http://www.projectchrono.org/assets/logos/chrono-bsd.svg)](https://projectchrono.org/license-chrono.txt)

Project Chrono represents a community effort aimed at producing a physics-based modelling and simulation infrastructure based on a platform-independent, open-source design. The name of this software infrastructure is Chrono. Some of its features are listed below. The applications areas in which Chrono is most often used are **vehicle dynamics**, **robotics**, and **machine design**. In vehicle dynamics, Chrono has mature support for tire/terrain interaction modeling and simulation.


- [Project website](http://projectchrono.org/)
- [Build and install instructions](http://api.projectchrono.org/4.0.0/tutorial_table_of_content_install.html)
- Documentation
- [development branch](http://api.projectchrono.org/)
- [release 5.0.0](http://api.projectchrono.org/5.0.0/)
- [release 4.0.0](http://api.projectchrono.org/4.0.0/)




Features
========

### Physics modeling

- Rigid body support
- Flexible body support via Chrono::FEA module - both for ANCF and co-rotational nonlinear finite element analysis
- Flexible body support - both for ANCF and co-rotational nonlinear finite element analysis
- Support for fluid-solid interaction problems, via Chrono::FSI module
- Coulomb friction model capturing stick-slip phenomena.
- Support for rolling friction and spinning friction.
Expand Down Expand Up @@ -70,8 +87,3 @@ Project Chrono represents a community effort aimed at producing a physics-based
- Scripting via Python.
- Makefile system based on CMake (cross-platform, on Windows 32/64 bit, Linux, OSX).

## CI/CD Status
| Branch | Status |
| ------ | ------ |
| develop | [![pipeline status](https://gitlab.com/uwsbel/chrono/badges/develop/pipeline.svg)](https://gitlab.com/uwsbel/chrono/commits/develop) |

106 changes: 70 additions & 36 deletions cmake/ChronoConfig.cmake.in
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
#===============================================================================
# Chrono project configuration file
#
#
# This file is automatically generated when Chrono is configured and contains
# information on how the project was configured. It can be used by third party
# projects in their own CMakeLists files to find the Chrono package and obtain
# information on how to link to the Chrono libraries.
#
#
# In the call to find_package(), the following Chrono components can be
# requested (case insensitive): Cascade, Cosimulation, Irrlicht, Matlab,
# Parallel, Postprocess, Python, Vehicle. These can be requested either as
# required or optional (see the CMake documentation for find_package).
# Multicore, Gpu, PardisoMKL, PardisoProject, Postprocess, Python, Vehicle.
# A component can be requested either as required or optional
# (see the CMake documentation for find_package).
#
# Variables set by this script:
# CHRONO_FOUND
Expand All @@ -31,11 +32,11 @@
# path to the Chrono::Vehicle data directory
# CHRONO_FSI_DATA_DIR
# path to the Chrono::FSI data directory
#
#
# In addition, for each requested component [COMPONENT], the following variable
# is set to true (ON) or false (OFF):
# CHRONO_[COMPONENT]_FOUND
#
#
# Other variables:
# CHRONO_SSE_FOUND
# set to true is SSE support is available
Expand Down Expand Up @@ -66,14 +67,15 @@ else()
endif()

list(APPEND CHRONO_INCLUDE_DIRS "@CH_INCLUDE_DIRS@")
list(APPEND CHRONO_LIBRARIES "")
list(APPEND CHRONO_LIBRARIES "@OPENMP_LIBRARIES@")
list(APPEND CHRONO_LIB_NAMES "ChronoEngine")
list(APPEND CHRONO_DLLS "")
list(APPEND CHRONO_DLL_NAMES "ChronoEngine.dll")

set(CHRONO_DATA_DIR "@CH_DATA_DIR@")
set(CHRONO_VEHICLE_DATA_DIR "@CH_DATA_DIR@vehicle/")
set(CHRONO_FSI_DATA_DIR "@CH_DATA_DIR@fsi/")
set(SYNCHRONO_DATA_DIR "@CH_DATA_DIR@synchrono/")

set(CHRONO_SSE_FOUND "@SSE_FOUND@")
set(CHRONO_AVX_FOUND "@AVX_FOUND@")
Expand All @@ -86,22 +88,25 @@ set(Chrono_HAS_cascade @ENABLE_MODULE_CASCADE@)
set(Chrono_HAS_cosimulation @ENABLE_MODULE_COSIMULATION@)
set(Chrono_HAS_irrlicht @ENABLE_MODULE_IRRLICHT@)
set(Chrono_HAS_matlab @ENABLE_MODULE_MATLAB@)
set(Chrono_HAS_mkl @ENABLE_MODULE_MKL@)
set(Chrono_HAS_pardisomkl @ENABLE_MODULE_PARDISO_MKL@)
set(Chrono_HAS_mumps @ENABLE_MODULE_MUMPS@)
set(Chrono_HAS_parallel @ENABLE_MODULE_PARALLEL@)
set(Chrono_HAS_multicore @ENABLE_MODULE_MULTICORE@)
set(Chrono_HAS_opengl @ENABLE_MODULE_OPENGL@)
set(Chrono_HAS_postprocess @ENABLE_MODULE_POSTPROCESS@)
set(Chrono_HAS_python @ENABLE_MODULE_PYTHON@)
set(Chrono_HAS_vehicle @ENABLE_MODULE_VEHICLE@)
set(Chrono_HAS_fsi @ENABLE_MODULE_FSI@)
set(Chrono_HAS_granular @ENABLE_MODULE_GRANULAR@)
set(Chrono_HAS_gpu @ENABLE_MODULE_GPU@)
set(Chrono_HAS_sensor @ENABLE_MODULE_SENSOR@)
set(Chrono_HAS_pardisoproject @ENABLE_MODULE_PARDISO_PROJECT@)
set(Chrono_HAS_synchrono @ENABLE_MODULE_SYNCHRONO@)

#-------------------------------------------------------------------------------
# Loop over the list of requested components
#-------------------------------------------------------------------------------

foreach(COMPONENT ${Chrono_FIND_COMPONENTS})

string(TOLOWER ${COMPONENT} COMPONENT_LOWER)
string(TOUPPER ${COMPONENT} COMPONENT_UPPER)

Expand Down Expand Up @@ -129,26 +134,26 @@ foreach(COMPONENT ${Chrono_FIND_COMPONENTS})
endif()

else()

# The component is available. Append to output variables.
set(CHRONO_${COMPONENT_UPPER}_FOUND ON)

if(${COMPONENT_UPPER} MATCHES "PARALLEL")
if(${COMPONENT_UPPER} MATCHES "MULTICORE")

set(CHRONO_CXX_FLAGS "${CHRONO_CXX_FLAGS} @CH_PARALLEL_CXX_FLAGS@")
set(CHRONO_C_FLAGS "${CHRONO_C_FLAGS} @CH_PARALLEL_C_FLAGS@")
set(CHRONO_CXX_FLAGS "${CHRONO_CXX_FLAGS} @CH_MULTICORE_CXX_FLAGS@")
set(CHRONO_C_FLAGS "${CHRONO_C_FLAGS} @CH_MULTICORE_C_FLAGS@")

list(APPEND CHRONO_INCLUDE_DIRS "@CH_PARALLEL_INCLUDES@")
list(APPEND CHRONO_LIB_NAMES "ChronoEngine_parallel")
list(APPEND CHRONO_DLL_NAMES "ChronoEngine_parallel.dll")
list(APPEND CHRONO_INCLUDE_DIRS "@CH_MULTICORE_INCLUDES@")
list(APPEND CHRONO_LIB_NAMES "ChronoEngine_multicore")
list(APPEND CHRONO_DLL_NAMES "ChronoEngine_multicore.dll")

elseif(${COMPONENT_UPPER} MATCHES "OPENGL")

list(APPEND CHRONO_INCLUDE_DIRS "@CH_OPENGL_INCLUDES@")
list(APPEND CHRONO_LIB_NAMES "ChronoEngine_opengl")
list(APPEND CHRONO_LIBRARIES "@GLEW_LIBRARY@")
list(APPEND CHRONO_LIBRARIES "@GLFW_LIBRARY@")
list(APPEND CHRONO_LIBRARIES "@OPENGL_LIBRARY@")
list(APPEND CHRONO_LIBRARIES "@OPENGL_LIBRARY@")
list(APPEND CHRONO_DLL_NAMES "ChronoEngine_opengl.dll")
list(APPEND CHRONO_DLLS "@GLEW_DLL@")
list(APPEND CHRONO_DLLS "@GLFW_DLL@")
Expand All @@ -165,33 +170,56 @@ foreach(COMPONENT ${Chrono_FIND_COMPONENTS})
list(APPEND CHRONO_DLLS "@CH_IRRLICHT_DLL@")

elseif(${COMPONENT_UPPER} MATCHES "VEHICLE")

list(APPEND CHRONO_LIB_NAMES "ChronoEngine_vehicle")
list(APPEND CHRONO_DLL_NAMES "ChronoEngine_vehicle.dll")
list(APPEND CHRONO_LIB_NAMES "ChronoModels_vehicle")
list(APPEND CHRONO_DLL_NAMES "ChronoModels_vehicle.dll")


if(${Chrono_HAS_irrlicht})
list(APPEND CHRONO_LIB_NAMES "ChronoEngine_vehicle_irrlicht")
list(APPEND CHRONO_DLL_NAMES "ChronoEngine_vehicle_irrlicht.dll")
endif()

elseif(${COMPONENT_UPPER} MATCHES "FSI")

list(APPEND CHRONO_INCLUDE_DIRS "@CH_FSI_INCLUDES@")
list(APPEND CHRONO_LIB_NAMES "ChronoEngine_fsi")
list(APPEND CHRONO_DLL_NAMES "ChronoEngine_fsi.dll")

elseif(${COMPONENT_UPPER} MATCHES "GRANULAR")

set(CHRONO_CXX_FLAGS "${CHRONO_CXX_FLAGS} @CH_GRANULAR_CXX_FLAGS@")
elseif(${COMPONENT_UPPER} MATCHES "SENSOR")
set(CHRONO_CXX_FLAGS "${CHRONO_CXX_FLAGS} @CH_SENSOR_CXX_FLAGS@")
set(CHRONO_C_FLAGS "${CHRONO_C_FLAGS} @CH_SENSOR_C_FLAGS@")

list(APPEND CHRONO_INCLUDE_DIRS "@CH_SENSOR_INCLUDES@")
list(APPEND CHRONO_LIB_NAMES "ChronoEngine_sensor")
list(APPEND CHRONO_LIBRARIES "@SENSOR_LIBRARIES@")
list(APPEND CHRONO_DLL_NAMES "ChronoEngine_sensor.dll")
list(APPEND CHRONO_DLLS "@optix_DLL@")
list(APPEND CHRONO_DLLS "@CH_GLEW_DLL@")

elseif(${COMPONENT_UPPER} MATCHES "SYNCHRONO")

list(APPEND CHRONO_INCLUDE_DIRS "@SYN_INCLUDES@")
list(APPEND CHRONO_LIB_NAMES "ChronoEngine_synchrono")
list(APPEND CHRONO_LIBRARIES "@SYN_LIBRARIES@")
list(APPEND CHRONO_DLL_NAMES "ChronoEngine_synchrono.dll")

elseif(${COMPONENT_UPPER} MATCHES "GPU")

set(CHRONO_CXX_FLAGS "${CHRONO_CXX_FLAGS} @CH_GPU_CXX_FLAGS@")

list(APPEND CHRONO_INCLUDE_DIRS "@CH_GRANULAR_INCLUDES@")
list(APPEND CHRONO_LIB_NAMES "ChronoEngine_granular")
list(APPEND CHRONO_DLL_NAMES "ChronoEngine_granular.dll")
list(APPEND CHRONO_INCLUDE_DIRS "@CH_GPU_INCLUDES@")
list(APPEND CHRONO_LIB_NAMES "ChronoEngine_gpu")
list(APPEND CHRONO_DLL_NAMES "ChronoEngine_gpu.dll")

elseif(${COMPONENT_UPPER} MATCHES "MKL")
elseif(${COMPONENT_UPPER} MATCHES "PARDISOMKL")

list(APPEND CHRONO_INCLUDE_DIRS "@CH_MKL_INCLUDES@")
list(APPEND CHRONO_LINKER_FLAGS "@CH_MKL_LINK_FLAGS@")
list(APPEND CHRONO_LIBRARIES "@CH_MKL_LIBRARIES@")
list(APPEND CHRONO_LIB_NAMES "ChronoEngine_mkl")
list(APPEND CHRONO_DLL_NAMES "ChronoEngine_mkl.dll")
list(APPEND CHRONO_LIB_NAMES "ChronoEngine_pardisomkl")
list(APPEND CHRONO_DLL_NAMES "ChronoEngine_pardisomkl.dll")

elseif(${COMPONENT_UPPER} MATCHES "MUMPS")

Expand Down Expand Up @@ -238,6 +266,12 @@ foreach(COMPONENT ${Chrono_FIND_COMPONENTS})
list(APPEND CHRONO_LIBRARIES "@CH_MATLABLIB@")
list(APPEND CHRONO_DLL_NAMES "ChronoEngine_matlab.dll")

elseif(${COMPONENT_UPPER} MATCHES "PARDISOPROJECT")

list(APPEND CHRONO_LIB_NAMES "ChronoEngine_pardisoproject")
list(APPEND CHRONO_LIBRARIES "@PARDISOPROJECT_LIBRARIES@")
list(APPEND CHRONO_DLL_NAMES "ChronoEngine_pardisoproject.dll")

endif()

endif()
Expand Down Expand Up @@ -328,24 +362,24 @@ function(add_DLL_copy_command DLL_LIST)
if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows")
return()
endif()

# Remove duplicates in the input list
list(REMOVE_DUPLICATES DLL_LIST)

message(STATUS "==== Add custom commands for copying DLLs ====")
message(STATUS "DLL list...")

# Create custom target for copying DLLs; add it to the default build target
add_custom_target(COPY_DLLS ALL)

# Add custom command to create the destination folder
add_custom_command(TARGET COPY_DLLS PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory "${EXECUTABLE_OUTPUT_PATH}/$<CONFIGURATION>/")

# Loop over the list of all DLLs and create a custom command
foreach(DLL ${DLL_LIST})
message(STATUS "...${DLL}")

# Create custom commands, invoked pre-build to copy DLLs to the appropriate
# directory (depending on the configuration selected at build time in VS)
add_custom_command(
Expand Down
Loading

0 comments on commit 3a9e008

Please sign in to comment.