Documentation#

Modules and Submodules#

At the beginning of each module, write the copyright notice followed by a brief description of the things defined in the module:

# SPDX-License-Identifier: BSD-3-Clause
# Part of the JaxDEM project – https://github.com/cdelv/JaxDEM
"""
The factory defines and instantiates specific simulation components.
"""

Classes#

When writing documentation of a class, everyone should follow the following structure:

class Name:
    """
    Description of the class

    Notes
    -----
    Any special/not obvious behavior the user should be aware of

    Example
    -------
    Instantiation and/or usage example. To write code snippets, use >>> at the beginning of each line:

    >>> @Foo.register("bar") 
    >>> class bar:
    >>>     ...
    """

    class_atribute
    """
    Description
    """

    def method(param1: Type) -> ReturnType:
        """
        Method description.


        Parameters
        ----------
        param1 : Type or None (if applicable), (optional if the parameter is optional or nothing)
            Description
        
        Returns
        -------
        ReturnType
            Description

        Raises
        ------
        ErrorCode
            When does it error

        Example
        -------
        Usage example/s
        """
        ...

Functions#

Examples#

To Do list#

  • Write a comprehensive list of examples and tests

  • Improve documentation

  • Improve tensorboard support and logging for RL.

  • Add VTK rendering for environments and simulations.

  • Improve RL performance, especially for the LSTM.

  • Documentation and tests of forces/router.py, utils.py

  • Improve utils

  • Benchmarks

  • Unit tests

  • How to save interactions to VTK?

  • Add more integration methods.

  • Created compound force model. Create standard force models—Hertz-Mindilin, Kundall, etc.

  • Force reset and gravity.

  • Add support for different shapes.

  • Add other contact detection strategies (partially ready).

  • Confirm the reorganised module layout covers all new packages.

  • Create the dynamic flag in the state. Use to constrain specific DoFs.

  • Add angular velocity and acceleration arrays to the state.

  • Add facets support.

  • Implement deformable particles.

  • Implement a way to create only the required elements on the state and system objects and add model-specific data arrays.