-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the VDisp wiki! For more information, checkout the project README or continue reading our introduction to VDisp below.
- Getting Started with VDisp
- What is Geotechnical Engineering
- What is VDisp
- Issues we would like to return to
VDisp is developed using the Julia programming language. Julia is a high-level, dynamic programming language developed specifically for applications in data science/machine learning. It was made to be as simple as Python while giving users the speed of a low level language such as C/C++.
Detailed installation instructions can be found in this section of our Getting Started With Julia page.
For systems with the make tool installed, the Makefile contained in the home directory makes program execution very simple. For first-time setup, run make precompile. This will set up the Julia dependencies required to run VDisp on your system. Now you can execute make or make run to run VDisp. There is also a make debug rule, which provides more info in the terminal.
Note: It will take long to precompile and the first time running VDisp will take longer than normal to execute
For systems that don't have the make tool, the following commands can be executed in place of the make precompile, make and make debug rules
Precompile:
julia -e "using Pkg; Pkg.activate(\"docs\"); Pkg.instantiate()"
julia -e "using Pkg; Pkg.activate(\".\"); Pkg.instantiate()"
Note: For developers who have added new packages and want to precompile again, make sure all
Manifest.tomlfiles are deleted from directoriesvdisp/andvdisp/docsbefore executing these commands.
Run:
julia --project=@. src/vdisp.jl "run"
Note: The
--projectflag specifies which directory to search for theProject.tomlfile. Enter relative path to directoryvdisp/after the "@" symbol (in the command above, it was assumed the command will be executed from thevdisp/directory itself, thus the relative path was "."). The next argument is the Julia file to execute. Enter relative path tovdisp/src/vdisp.jl. Finally, there must be one command line argument given. For normal execution, any string can be given as input (to make it clear, example uses "run"). To run in debug mode, use "debug" instead (see below)
Debug:
julia --project=@. src/vdisp.jl "debug"
run make test
Visual Studio Code is a very powerful editor that can be used for Julia development as well. You can download VS Code here. You will need an extension for Julia syntax highlighting. I recommend the Julia extension, that can be found here. The Julia language and its built in package manager make use of a certain type of file called a TOML (Tom's Obvious Minimal Language). Read more about how Julia uses these TOML files in our README file. I would recommend you install this VSCode extension for TOML syntax highlighting.
Geotechnical engineering is the study of soil behaviour under load force or soil-water interactions. For further readings, navigate to vdisp/Resources or follow this link.
VDisp (Vertical Displacement) is a software used for one-dimensional soil settlement analysis. It is meant to replace the need for hours of hand calculations (which have high potential for error) by providing a user-friendly graphical interface to input values into. This software calculates one-dimensional settlement using approximations and assumptions typical to an undergraduate geotechnical engineering course. For more information on what calculations are made in the back-end, see here. The software then provides useful visualizations aimed at providing a quick outlook on whether or not the foundation will be displaced by an acceptable amount. The software is mainly meant to be used by students looking to get a better insight on the effects of the many inputs on the settlement of the soil profile. By providing an easy to use interface, equipped with the option to autofill from input files, students can slightly tweak certain input parameters and quickly view the change in output.
The issue-tracker provides a good outlook on what features are yet to be implemented, and what bugs may currently be present. Here is a quick list of features we would like to implement in the future:
- Interactive graphs
- 2D analysis
- Different types of visualization
- Literate programming practices within code base
- Refactor code to more closely resemble initial "ideal" design (see this <- ADD LINK TO DESIGN.PDF document)