# Structure

This framework contains the following folders and files:

    user-material-models/
    ├── docs/
    ├── example-models/
    ├── output/
    └── user-material/
        ├── gpu_error.cpp
        ├── gpu_error.h
        ├── interface.cpp
        ├── interface.h
        ├── kernel_mat_XXXX.cu
        ├── kernel_mat_XXXX.h
        ├── mat_user_defines.h
        ├── mat_user_functions.h
        ├── mat_user_structs_cpu.h
        ├── mat_user_structs_gpu.h
        ├── mat_user.h
        ├── mat_XXXX.cpp
        ├── mat_XXXX.h
        ├── user-material.vcxproj.filters
        └── user-material.vcxproj
    ├── user-material.sln
    ├── CMakeLists.txt
    └── Makefile

- The `docs` directory is where this documentation is located.

- The `example-models` directory contains example models that can be used to test the provided user material models.

- The `output` directory serves as the destination for the compiled DLL / shared object file if compilation is successful.

- The `user-material` directory contains C++ and CUDA code.

- The `user-material.sln` file is a Visual Studio 2022 solution file. It contains the compilation and execution configurations for the framework.

- The `CMakeLists.txt` provides a set of rules for building the user material project using Cmake

- The `Makefile` provides a set of rules for building the user material project under Linux. It contains the compilation and execution configurations for the framework.