$$\beta_K \cdot k_\text{tangent}$$
acts varies with the load level), the acceptance criterion is
last_fifth_time_series rather than full time series. The settled tip displacement is what is validated, not the transient envelope.Opensees nonlinear material ten elements dynamic
1 Test description
This test analyses the dynamic response of a ten-element cantilever beam featuring a nonlinear steel material (Giuffré-Menegotto-Pinto / Steel02) subjected to a transverse tip force that is ramped up linearly over 2 s and then held constant for a total simulation duration of 60 s. Results produced by
OpenSees 3.7.1
are used to benchmark Ashes.
The purpose of the test is to validate the
BilinearGMP material model in Ashes under dynamic loading conditions on a distributed-plasticity mesh, complementing the single-element sister test
Opensees nonlinear material one element dynamic.
Where the one-element variant collapses the cantilever onto a single PlasticHinge element (and the OpenSees side onto an SDOF spring), this test subdivides the same Ashes support section into
10 PlasticHinge elements and the OpenSees side uses 10 displacement-based beam-column elements with 5 integration points each. The benchmark covers the elastic range, the elastic-to-plastic transition, and the post-yield hardening regime by sweeping the peak tip force from 0 to 1 MN in 50 kN increments (21 load cases). Because stiffness-proportional Rayleigh damping is applied on both sides (see Section 2), the dynamic transient settles to the static bilinear F-u curve at every load level.
2 Model
The model is a vertical cantilever beam built with the
Tubular tower only template, 10 m tall, fixed at the base and free at the tip. The single Ashes member is discretized into 10
PlasticHinge beam elements (support section input file
Ten_element_GMP.txt). A point mass of 100 t is placed at the tip node (RNA mass).
The cross section is circular hollow with diameter
$$D=1.0\text{ m}$$
and thickness
$$t=0.025\text{ m}$$
.
The material is a
BilinearGMP nonlinear steel matching the parameters of the OpenSees
Steel02 uniaxial material:
$$E=2.1\cdot10^{11}\text{ Pa},\quad \nu=0.3,\quad f_y=2.5\cdot10^{8}\text{ Pa}$$
$$b=0.015,\quad R_0=18,\quad cR_1=0.9,\quad cR_2=0.15$$
where
$$b$$
is the strain-hardening ratio and
$$R_0,\, cR_1,\, cR_2$$
control the curvature of the elastic-to-plastic transition.
Gravity, aerodynamic and wave loads are disabled. The Ashes analysis mode is
Linear (small-displacement formulation, no P-Delta); the only source of nonlinearity is the material. The tip force is applied in the global x-direction at the RNA node. The simulation runs for
$$T=60\text{ s}$$
with a timestep of
$$\Delta t=0.02\text{ s}$$
.
The 21 load cases are distinguished by the peak tip force:
$$F_i = (i-1)\cdot 50\text{ kN},\quad i=1,\dots,21$$
i.e. from 0 N (Load case 1) up to 1 MN (Load case 21).
2.1 Load ramp-up
Each load case applies its peak force via a linear ramp over the first
$$T_\text{ramp}=2\text{ s}$$
,
after which the force remains constant for the remainder of the 60 s simulation. The ramp is configured using the Ashes built-in
Duration / Linear ramp-up scheme.2.2 Damping setup
Both
Ashes and
OpenSees apply stiffness-proportional (initial-stiffness) Rayleigh damping with the same coefficient:
$$\beta_K = 0.05\text{ s/rad}$$
Unlike the one-element sister test — which collapses the cantilever onto a
zeroLength + uniaxialMaterial element and therefore had to fall back on mass-proportional Rayleigh damping (because OpenSees silently ignores stiffness-proportional damping on that element type) — the 10-element distributed-plasticity mesh used here is built from
dispBeamColumn elements, on which OpenSees honours the stiffness-proportional Rayleigh coefficient directly. As a result, no equivalence trick is needed: the two codes use the same damping formulation with the same numerical value.
This level of damping is sufficient to suppress the dynamic transient so that the tip displacement settles to the bilinear F-u value at every load level. Consequently, the dynamic test doubles as an independent consistency check against a static reference: if the static and dynamic F-u curves agree at every load level, both the static solver and the dynamic integrator are exercising the same material curve.
Acceptance window: because the transient shape can differ slightly between the two codes during the elastic-to-plastic transition (the tangent stiffness through which
3 Benchmarked solution
The reference solution is computed with OpenSees 3.7.1 using a distributed-plasticity 2D model that mirrors the Ashes mesh. The cantilever is discretised into
$$N_E=10$$
dispBeamColumn elements with
$$N_\text{IP}=5$$
Gauss integration points each, matching the Ashes Ten_element_GMP.txt support section. The section is assembled as an
Aggregator of an elastic axial material and a
Steel02 Mz material using the same
$$E,\, f_y,\, b,\, R_0,\, cR_1,\, cR_2$$
as Ashes.
The geometric transformation is
Linear (no P-Delta), matching the Ashes
FemDynamic.AnalysisMode = Linear setting. A 100 t point mass is attached to the tip node. The tip force is applied as a dynamic time history via a
timeSeries Path with a 2 s linear ramp followed by a constant hold, applied inside a
Plain load pattern. The same
$$\Delta t = 0.02\text{ s}$$
timestep is used.
The transient solver settings are: constraints
Plain, numberer
RCM, system
UmfPack, convergence test
NormDispIncr (tolerance
$$10^{-8}$$
, max 200 iterations), algorithm
Newton, integrator
Newmark with
$$\gamma=0.5,\, \beta=0.25$$
(average-acceleration / unconditionally stable). If a global step fails to converge, the integrator falls back to 20 sub-steps of size
$$\Delta t/20$$
before declaring failure.
The tip displacement time series is recorded with
recorder Node and post-processed by the Ashes
Generate_results.py script, which invokes OpenSees once per non-zero load case and interpolates the resulting tip-displacement trace onto the Ashes time grid for comparison. The OpenSees input file is bundled inside the benchmark-tools test directory as
Constant_cylinder_dynamic.tcl.
4 Results
For each load case, the global x-displacement of the tip node (sensor
Node RNA_node Tubular tower, displacement DOF x) is compared between Ashes and OpenSees. The comparison is performed over the last fifth of the 60 s time series (i.e. from t = 48 s to t = 60 s), by which point the ramp-up transient has fully settled. The test is considered passed if the relative error between the Ashes tip displacement and the OpenSees reference displacement stays below
10% in that window. In addition, the shear force and bending moment at the base element (sensor Beam element [Element 1 Tubular tower], “Shear force (1st prin. axis)” and “Moment (2nd prin. axis), i”) are also compared against the corresponding OpenSees base-element internal forces. The same acceptance criterion is used for all 21 load cases, which together cover the purely elastic response, the elastic-to-plastic transition around
$$F_y$$
, and the post-yield hardening branch.
The settled tip x-displacement at each of the 21 force levels is shown below for both codes. The two curves overlap closely from the elastic branch through the yield knee and into the post-yield hardening branch, validating the distributed-plasticity BilinearGMP implementation in Ashes against the OpenSees reference.
The report for this test can be found on the following link: