tamaas/744f0918bc36maxwell_viscoelastic…
maxwell_viscoelastic-branch vs master
Commit | Author | Details | Committed | ||||
---|---|---|---|---|---|---|---|
d93a6c6fa185 | Lucas Frérot | solving with normalized influence coefficients (viscoelastic) | 14:31 | ||||
4dbca6802fd9 | Lucas Frérot | using model.getShearModulus() instead of G_inf (MaxwellViscoelastic) | 13:59 | ||||
83d029db2b37 | Lucas Frérot | bindings for MaxwellViscoelastic | 11:52 | ||||
ef36ea1dd388 | Lucas Frérot | added G_inf to MaxwellViscoelastic constructor | 11:51 | ||||
2eb74b54be99 | Zichen | implement viscoelastic algorithm with Loop class | 11:38 | ||||
30ce539f212a | Zichen | Merge branch 'master' into maxwell_viscoelastic-branch | Jun 18 | ||||
c22af0bd2267 | Zichen | Initiation of maxwell_viscoelastic | May 14 | ||||
43b439ffbc71 | Zichen | Add maxwell_viscoelastic.cpp to source files | May 6 | ||||
276abf143714 | Zichen | Merge branch 'master' into maxwell_viscoelastic-branch | May 6 | ||||
8d3562256686 | Zichen | test git | Apr 29 |
/
README.md
Tamaas --- A blazingly fast rough contact library
Tamaas is a C++/Python library that implements a number of numerical methods based on integral equations to efficiently solve contact problems with rough surfaces. The word تماس (tamaas) means "contact" in farsi.
Dependencies
Here is a list of dependencies for Tamaas:
- a C++ compiler with full C++14 and OpenMP support
- SCons (python build system)
- FFTW3 compiled with OpenMP support
- boost (preprocessor)
- thrust (the version shipped with CUDA, not the GitHub version; tested with 1.9.2)
- python 3+ (probably works with python 2, but it is not tested) with numpy
- pybind11 (included as submodule)
- expolit (included as submodule)
Optional dependencies are:
- scipy (for nonlinear solvers)
- uvw (for dumpers)
- googletest and pytest (for tests)
- Doxygen and Mercurial (for documentation)
Note that a Debian distribution should have the right packages for all these dependencies (they package the right version of thrust extracted from CUDA in stretch-backports non-free and buster non-free).
Compiling
You should first clone the git submodules that are dependencies to tamaas (expolit, pybind11 and googletest):
git submodule update --init --recursive
The build system uses SCons. In order to compile Tamaas with the default options:
scons
After compiling a first time, you can edit the compilation options in the file build-setup.conf, or alternatively supply the options directly in the command line:
scons option=value [...]
To get a list of all build options and their possible values, you can run scons -h. You can run scons -H to see the SCons-specific options (among them -j n executes the build with n threads and -c cleans the build). Note that the build is aware of the CXX and CXXFLAGS environment variables.
Tests
To run tests, execute pytest build-<build_type> if you have compiled Tamaas with tests activated (scons build_tests=True use_googletest=True).
Examples
Example simulations can be found in the examples/ directory. There is no guarantee that the examples in examples/legacy/ all work however.
- rough_contact.py shows a typical normal rough contact simulation
- adhesion.py shows how you can derive some classes from Tamaas in python, here to implement a custom adhesion potential
- plasticity.py computes an elastoplastic Hertz simulation and dumps the result in examples/paraview/ in VTK format
- stresses.py shows how you can compute stresses from a boundary traction distribution