Skip to content
Emil Soleymani edited this page Aug 20, 2022 · 24 revisions

VDisp

Welcome to the VDisp wiki! For more information, checkout the project README or continue reading our introduction to VDisp below.

Table of Contents

Getting Started with VDisp

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++.

Installing Julia

Detailed installation instructions can be found in this section of our Getting Started With Julia page.

Running your First Simulation Using VDisp

Mac/Linux

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

Windows

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.toml files are deleted from directories vdisp/ and vdisp/docs before executing these commands.

Run:

julia --project=@. src/vdisp.jl "run"

Note: The --project flag specifies which directory to search for the Project.toml file. Enter relative path to directory vdisp/ after the "@" symbol (in the command above, it was assumed the command will be executed from the vdisp/ directory itself, thus the relative path was "."). The next argument is the Julia file to execute. Enter relative path to vdisp/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"

Testing VDisp

run make test

Setup VSCode (for future developers and possible contributors)

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.

What is Geotechnical Engineering

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.

What is VDisp

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.

Issues we would like to return to

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)