LEMSlope 0.3.0 Released

I am very happy to announce the release of LEMSlope 0.3.0.

This release includes an exciting new feature – GUI model input. It is understood that not all users are familiar with Python language and creating analysis model through graphical user interface may be a better choice for some users. A tree structure is able to be used in this release now to set up the analysis model. The model set up with GUI can be converted to Python script and vice versa.

LEMSlope Model Structure

An additional new feature is copying svg file (Ctrl + Shift + C) and pasting the file into MS Office programs without exporting the svg file.


LEMSlope 0.2.0 Released

LEMSlope 0.2.0 is available today. This release focuses on reinforcement, new soil models, and running program with command line.


Reinforcements in LEMSlope consist of geosynthetics (geogrid and geotextile), soil anchors, and soil nails. Geosynthetics are considered as extensible reinforcement and factor of safety dependent, which means that the geosynthetics are share the same factor of safety of the slices. Soil anchors and soil nails essentially have similar setup. Soil anchors and soil nails are considered as inextensible reinforcement and factor of safety independent; therefore, reduction factors are required to be used in the input. Different friction resistances can be specified for different sections on a single soil anchor, which provides flexibility for considering anchors installed in different soil strata. At the same time, concentrated resistances can also be used to simulate individual helixes on soil anchors.

The exact start point is not required to add a reinforcement element. The program will find the nearest ground surface based on the provided elevation. Multiple reinforcement elements can be easily added with a Python loop.

New Soil Models

A tau-over-sigmav soil model with minimum strength cap is ready to be used in this release. The JavaScript function model provides full flexibility to customize the soil model. Users can use JavaScript function model as Mohr Coulomb model, tau-over-sigmav model, SHANSEP model, Hoek-Brown model, etc., with spatial variation and anisotropic function.

Why is JavaScript used for the function model instead of Python? It may look a bit weird since the analysis model is generated with Python. The reason is JavaScript is generally faster than Python script with current JavaScript engine and a large number of slip surfaces need to be assessed for a common analysis. by pressing Ctrl + J, a JavaScript editor will pop up to edit and test model function.

Command Line

With this release, users can run the program in command line mode without graphical user interface. The input file can be either LEMSlope file *.lem or Python script *.py. The analysis results will be write into *.lem. The *.lem file is in JSON format and readily to be parsed to retrieve the results. The command line format is:

LEMSlope.exe -c example.lem
LEMSlope.exe -c example.py

Enjoy! Any suggestions please let me know.

PyPile 0.9.0 Released

After some hard work, I am very happy that PyPile 0.9.0 is released today. There are several new features implemented in this release:

Reinforced Concrete Piles

Round piles and rectangular piles with reinforced concrete material are readily available for lateral pile analysis. Pile moment-curvature relationship graph also incorporated in this release.

Finned Pile

With the rapid growth of solar power industry, finned piles are used more and more to resist lateral loads. Finned piles are implemented in this release to help engineers quickly estimate the impact of the fins on the pile lateral resistance.

New JavaScript Editor

JavaScript is used as script language in PyPile to customize soil springs, pile materials, and pile geometry. A more elegant and powerful JavaScript editor is included in this release.

Predefined General Pile List

If some pile types are used on a daily basis, a predefined pile list will speed up the data entry process. In PyPile, a predefined pile list is saved in an Excel file and the list can be updated by users. Each pile class is saved in a separate sheet.

Please feel free to let me know if you have any comments or suggestions, or if you would like to report any bugs.

Set Up Slope/W Model Geometry with LEMSlope data

LEMSlope can quickly generate geometry model with parametric input for slope stability analysis. If you have already had Slope/W in your firm, you can still take advantage of the parametric model generation with LEMSlope.

The following video shows how easy you can set up the model geometry in Slope/W with data in LEMSlope.

LEMSlope – A Free Slope Stability Analysis Program

I am so excited to release the first version of LEMSlope today. I believe LEMSlope will provide geotechnical engineers with new slope analysis experiences.

The initial motivation for creating LEMSlope is to have a declarative way to define the model geometry for slope analysis and free engineers from tedious geometry calculation, especially for design projects, in which many iterations of adjustment are required.

To ensure the declarative nature of model definition and maximize the flexibility, Python, as one of the most popular script languages in the world, is selected as the script language for LEMSlope. Many young engineers and student are familiar with Python. Even if you don’t know Python, the simplicity of the language should not steepen the learning curve too much.

Each analysis model, defined with the script, consists of one base case and one or many analysis cases. The analysis cases are based on the base case and modified with fill, excavation, phreatic surfaces, loads, and different materials.

The default script in the program should be able to provide users with a general idea about how the script structure looks like. Many example files are available in the example folder with the program package. The function cheat sheet in the program provides a list of all the modelling functions and associated function explanation.

Since this is the very first version, many functions are still in the todo list. If you think any functions need to be prioritized, please leave me a message or send me an email. Enjoy!

Tapered Pile with PyPile

Compared to uniform piles, tapered pile has a varied pile width and varied bending stiffness along the pile length. Since usually the angle of tapering is relatively small, the lateral soil resistance affected by the pile width variation is relatively small. To analyze tapered pile under lateral load with PyPile 0.8.5, one can simply changes the pile bending stiffness along the pile length through User Defined Function bending stiffness type.

The User Defined Function uses embedded JavaScript to define the pile bending stiffness at any location below the pile top. The following code shows an example for a tapered pile with a tapering angle of 1 degree, a top diameter of 610 mm, and an elastic modulus of 24 GPa.

function moment(len2top, curvature) {
	var E = 24.0 // GPa
	var D_top = 0.610 // m
	var tapering_angle = 1.0 // degree
	var radius = D_top * 0.5 - len2top * Math.tan(tapering_angle / 180.0 * Math.PI)
	var m = Math.PI / 4.0 * Math.pow(radius, 4) * E * 1e6 * curvature
	return m

BSTunnelLining 0.1.0 Released

I am very happy to announce that BSTunnelLining is released today.

BSTunnelLining is a finite element modeling program using beam and spring elements to analyze multi-ring segmental tunnel linings.

BSTunnelLining is created to help engineers and researchers to analyze segmental tunnel linings efficiently. Generally, it is not convenient to use general commercial FEA software to simulate segmental tunnel linings with beam and spring elements. BSTunnelLining can easily generate joint compression springs, shear springs, rotational springs. The longitudinal springs are able to couple the shear stiffness or rotational stiffness with compression force. The springs can be customized with JavaScript to accommodate any spring nonlinearity. Ground shear springs and tension only normal springs are readily to be used to simulate ground support.

This is just the very first version of BSTunnelLining. I believe that there will be many aspects of it required to be improved or implemented. I am more than happy to hear from you if you have any questions, suggestions, or comments.

BSTunnelLining 3D Model
BSTunnelLining 2D Model
BSTunnelLining 2D Moment

PyPile 0.8.0 Released

I am very happy to announce PyPile 0.8.0 is released today.

The major implementation in this version is nonuniform piles, including multi-section pipe piles, general multi-section piles, and general pile section defined with JavaScript function. Arbitrary load conditions can be visualized in the illustration graph now. Another improvement is soil p-y curve JavaScript function can be tested in the program.

PyPile 0.7.0 Released

After a long period of quiet time, I am so excited to announce the release of PyPile 0.7.0. Some significant changes and new functions will be discussed below.

Finite element method is implemented to replace the original finite difference method. FEM brings much higher flexibility for current functions and higher future extensibility for PyPile.

With this new release, lateral single ground springs, rotational springs, distributed springs provided by soils can be assigned to any depth along the piles. Piles can be fixed for lateral movement and rotation at any depths.

Concentrated lateral loads and moments, distributed lateral forces can be assigned to any depths along the analyzed piles. Distributed forces generated by relative soil movement can be easily applied to piles.

Nonlinear pile bending stiffness is also integrated into this release. The simplest elastic perfectly plastic bending stiffness can be used to limit the maximum moment in the piles. A higher nonlinearity can be implemented with user defined JavaScript curvature-moment function or user input explicit curvature-moment curve.

Distributed force generated by relative soil movement can be exported and used as input in other software programs, such as slope stability analysis programs.

In addition, weak rock and c-phi soil models are also implemented in this release.

PyPile 0.6.0 Released

I am happy to announce the PyPile 0.6.0 is released. New functions in PyPile 0.6.0 make it a more convenient tool for engineers.

The very popular API sand model was available in 0.6.0. Together with other existing models and custom models, PyPile can be used for any type of soils.

Soil model illustration graphs and suggested parameter ranges are available beside the soil model input dialog, which let engineers be more familiar with the models and related parameters.

p-y curves and soil resistances along pile are available to users to calculate the lateral subgrade modulus.