top of page
Search


Optimized Cantilever Retaining Wall Design with AI-Driven Algorithms
Retaining walls are fundamental in geotechnical and structural engineering, yet their design often involves conservative assumptions that...
Adisorn O.
Sep 28, 20253 min read


Underground Water Tank Analysis and Design using Reissner-Mindlin Plate Elements
Adisorn Owatsiriwong, D.Eng. ALPS Consultants Introduction An underground water tank’s wall is a 2D structure that requires detailed analysis using design charts or sophisticated FEM modeling, e.g., SAP2000. This time-consuming process requires a structural engineer to model the tank geometry and provide triangular load definitions to the model. In this project, we use the Reisner-Mindlin plate element (Bathe, 1996; Bishoff, 2002) to develop a handy FEM tool for water tank
Adisorn O.
10 hours ago4 min read


Procedure for Dynamic Analysis of 3D Buildings
Dynamic analysis of 3D building frames is computationally demanding, especially for multi-story and multi-bay frames. By applying Guyon reduction and rigid constraints, the analysis is highly efficient. Reduction Workflow Full 3D frame DOFs (As Static Analysis) → Guyan condensation to translational DOFs (Lateral mass only) → rigid diaphragm transformation → 3 DOF per floor Stage Main operation Resulting coordinates Full model Assemble K and M using all frame DOFs Nodal t
Adisorn O.
2 days ago1 min read


Reduction of DOF for the Dynamic Equilibrium Equation of Building Frames
Introduction Solving a dynamic system requires several time steps and is computationally demanding. The bending moment frame (Fig. 1a), while most common for static analysis, is inefficient for dynamic analysis, particularly for seismic analysis and structural design. Guyan (1965) proposed the reduction technique as an extension to static condensation to reduce the DOF with zero mass, i.e., at rotational dofs. (Adapted from Cimellaro and Marasco (2018)) Guyan Reduction B
Adisorn O.
2 days ago1 min read


Comparison of Integration Methods for General Dynamic Response
Introduction Several time-integration methods for the dynamic response of structures subjected to general time-dependent loading are available. They are classified into 3 main methods: 1. Duhamel's integral (Superposition of impulse) Fourier Series & Fourier Integral (Superposition of the global sine and cosine waves) Direct time integration Duhamel's Integral The Duhamel integral transforms the continuous load function into a sequence of discrete impulses. Then the respo
Adisorn O.
3 days ago4 min read


Automatic Design of Drilled Piers considering PM interaction (ACI 318-23)
A technical blog on automated reinforced concrete drilled pier design using strain compatibility and interaction diagram checking Introduction Drilled piers are commonly used as deep foundations for buildings, bridges, industrial structures, retaining systems, and heavy equipment foundations. In many practical projects, drilled piers are subjected not only to axial compression but also to bending moment from lateral loads, column eccentricity, seismic effects, wind, or constr
Adisorn O.
4 days ago8 min read


Algorithm Template for Nonlinear Dynamic Solver using the Newmark & Newton Loops
Nonlinear dynamic analysis plays an important role in seismic performance evaluation of structures. The solution of nonlinear dynamic can be solved by using Newmarks's method. This article provides a 1-DOF cookbook for review purposes and to provide basic knowledge for multi-DOF problems. The algorithm consists of Newmark loop and Newton loop as Time Integration (Newmark) └── for each time step └── Newton Iteration └── Stress Return Mapping
Adisorn O.
May 122 min read


Adisorn O.
Dec 15, 20250 min read


Adisorn O.
Nov 19, 20250 min read


Parallel Jaya do loop with MATLAB & OMP
Most swarm intelligence algorithms allow parallelization when computing the objective function. Each particle can be assigned to each worker to call the solver and return the individual objective value. The algorithm can be explained: MATLAB parfor function [x,f] = jaya_parallel(x,f,lb,ub,nPop,nVar,maxIt) for it = 1:maxIt % --- Step 1: find best/worst [f_best, idx_best] = min(f); [f_worst, idx_worst] = max(f); x_best = x(idx_best,:); x_worst = x(idx_worst,:); newx = z
Adisorn O.
Nov 19, 20251 min read


Equivalent Nodal Load for Nonprismatic Beam Element (Slab with Drop Panel)
Adisorn Owatsirwong, D.Eng. This equivalent nodal force is opposite to Fixed-end reactions and written in the element force calculation as follows. {Fe} = [ke]{u} - {q} {q} = Equivalent nodal force When assembling the element stiffness, those {q} are summed into the global load vector {F}, i.e. {F} + {Q}= [K]{u} [F] = Nodal applied load {Q} = Sum of equivalent nodal load vector [K] = The global stiffness of the structure MATLAB Code (case qe = q) function feq = eqv_load_dro
Adisorn O.
Nov 15, 20251 min read
🧩 Understanding Subroutines, Functions, and Modules in Fortran
When writing scientific codes or optimization solvers like PT-OP, you will quickly face one design decision: Should this piece of logic be written as a subroutine, a function, or wrapped in a module? At first, these terms can seem similar — but understanding their roles is the foundation of clean, safe, and efficient Fortran programming. 🔹 1. Subroutine vs Function Type Purpose Returns a value? Called by Subroutine Performs an action (procedure) ❌ No call my_sub(a, b, c) Fun
Adisorn O.
Nov 8, 20253 min read
🧭 Best Practices for Using Subroutines and Functions in Modern Fortran
When developing large, performance-oriented programs—especially in FEM and optimization—it’s critical to keep your Fortran code modular, readable, and safe. Below are four golden rules for managing subroutines and functions effectively in modern Fortran (Fortran 90+). 🔹1. Use Modules for Organization and Reusability A module is like a toolbox — it groups related variables, constants, and functions in one unit, and lets other parts of the program access them using the us
Adisorn O.
Nov 8, 20253 min read


Shear Strength Calculation of Reinforced Concrete Beam with Inclined Stirrups (ACI 318-19)
Shear reinforcement in a concrete beam is required when the shear strength of concrete alone is inadequate to carry the vertical shear from external loads. ACI 318 stipulates the general equation for computing the vertical shear strength of a concrete beam with inclined stirrups as follows. Vs = As*fy*d/s*(sin(a) + cos(a)) where a = horizontal angle of the inclined stirrup It's first astonishing to see the term cos(a) for the shear strength of the stirrup, which should only b
Adisorn O.
Oct 21, 20251 min read


Optimization of Sheet-Pile and Retaining-Wall Design: A Review of Methods and Metaheuristic Approaches
Keywords: Sheet-pile wall · Retaining wall · Metaheuristic optimization · Cost minimization · Reliability-based design · Multiobjective...
Adisorn O.
Oct 11, 20255 min read


The Future of Engineering Design Automation through Artificial Intelligence- Personal View
Artificial Intelligence is being advanced to the point where engineering design can be automated to an unprecedented extent. Within a...
Adisorn O.
Oct 9, 20252 min read


🐺 The Grey Wolf Optimizer (GWO): The way of the wolf hunting
1. Inspiration: Nature’s Hierarchy and Intelligence Greywolf's Hunting Mechanism (source: S. Mirjalili) The Grey Wolf Optimizer (GWO) ,...
Adisorn O.
Oct 8, 20254 min read


🚧 Automated Anchored Sheet Pile Wall Design with Optimization
Adisorn O. | ALPS Consultants 📌 The Problem with Traditional Methods Anchored sheet pile (SP) walls are typically designed using...
Adisorn O.
Oct 4, 20252 min read


🧠 Smarter Retaining Wall Design: Introducing Pile Support in Version 1.8.3
Retaining walls remain a core element in geotechnical engineering, but their design has often relied on manual iterations, conservative...
Adisorn O.
Oct 3, 20252 min read


Gravitational Search Algorithm (GSA) -- A Physics-inspired Metaheuristics
Background Proposed by Rashedi et al. in 2009 ( “GSA: A Gravitational Search Algorithm” ). Belongs to the family of physics-inspired...
Adisorn O.
Oct 2, 20252 min read
bottom of page
