suanPan-manual
  • Introduction
  • Basic
    • Obtain Application
    • Configure Application
    • Perform Analysis
    • Model Syntax
    • Model Structure
    • Tweak Performance
    • Compile Application
    • Build Documentation
    • Architecture Design
    • On Clusters
  • Example
    • Developer
      • element template
      • material template
    • Solid
      • wave propagation
    • Geotechnical
      • triaxial compression of sand
      • slope analysis
    • Structural
      • Statics
        • bending of a cantilever beam
        • bifurcation of a cantilever beam
        • double-edge notched specimen
        • lees frame
        • notched beam under cyclic loading
        • rc section analysis
        • truss roof
        • uniform tension of a rubber specimen
        • thin-walled section analysis for frame structures
        • calibration of subloading surface model
      • Dynamics
        • bouncing of a ball
        • mass-spring-dashpot system
        • dynamic analysis of a portal frame
        • elemental damping
        • particle collision
        • response history analysis of an elastic coupled wall
        • multi-support excitation
        • triple pendulum
        • computing response spectrum
        • integrate with python
        • process ground motion
      • Hybrid
        • vibration of a displaced beam
      • Buckling
        • buckling analysis of a cantilever beam
      • Contact
        • contact between beam and block
        • contact in 3d space
      • Optimization
        • evolutionary structural optimization
      • Isogeometric Analysis
        • linear analysis of a single element
    • Miscellaneous
      • batch execution for automation
  • Command Collection
    • Define
      • amplitude
      • bc
      • domain
      • element
      • expression
      • file
      • generate
      • group
      • import
      • initial
      • load
      • material
      • modifier
      • node
      • recorder
      • section
    • Configure
      • analyze
      • converger
      • criterion
      • integrator
      • precheck
      • step
    • Process
      • benchmark
      • clear
      • command
      • enable
      • exit
      • materialtest
      • materialtestbyload
      • sectiontest
      • peek
      • plot
      • protect
      • pwd
      • reset
      • save
      • set
      • upsampling
      • sdof_response
      • response_spectrum
  • Amplitude
    • Amplitude
    • Special
      • NZStrongMotion
    • Universal
      • Combine
      • Constant
      • Decay
      • Linear
      • Modulated
      • Tabular
      • TabularSpline
      • Trig
  • Constraint
    • MPC
    • ParticleCollision
    • RigidWall
    • RestitutionWall
    • FixedLength
    • MaxForce
    • NodeLine
    • NodeFacet
    • Embed2D
    • Embed3D
    • LJPotential2D
    • MaximumGap2D
    • MinimumGap2D
    • MaximumGap3D
    • MinimumGap3D
  • Converger
    • Converger
    • Absolute
      • AbsDisp
      • AbsError
      • AbsIncreDisp
      • AbsIncreAcc
      • AbsIncreEnergy
      • AbsResidual
    • Other
      • FixedNumber
      • Logic
    • Relative
      • RelDisp
      • RelError
      • RelIncreDisp
      • RelIncreAcc
      • RelIncreEnergy
      • RelResidual
  • Criterion
    • Criterion
    • MaxDisplacement
    • MaxHistory
    • MaxResistance
    • MinDisplacement
    • MinResistance
    • StrainEnergyEvolution
  • Element
    • Beam
      • B21
      • B21E
      • B21H
      • B31
      • B31OS
      • EB21
      • EB31OS
      • F21
      • F21H
      • F31
      • NMB21
      • NMB21E
      • NMB31
      • MVLEM
      • Orientation
    • Cube
      • C3D20
      • C3D4
      • C3D8
      • C3D8I
      • CIN3D8
      • DC3D4
      • DC3D8
    • Membrane
      • Couple Stress
      • Phase Field
        • DCP3
        • DCP4
      • Axisymmetric
        • CAX3
        • CAX4
        • CAX8
      • Plane
        • CP3
        • CP4
        • CP4I
        • CP5
        • CP6
        • CP7
        • CP8
      • Mixed
        • PS
        • QE2
      • Drilling
        • Allman
        • GCMQ
        • GQ12
      • Infinite
        • CINP4
      • Geotechnical
        • PCPE4DC
        • PCPE4UC
        • PCPE8DC
        • PCPE8UC
      • Membrane
    • Modifier
      • Modifier
      • ElementalLee
      • ElementalNonviscous
      • LinearViscosity
    • Patch
      • Patch
      • PatchCube
      • PatchQuad
    • Plate
      • DKT3
      • DKT4
      • Mindlin
    • Shell
      • DKTS3
      • DKTS4
      • S4
      • SGCMS
      • ShellBase
    • Special
      • Contact2D
      • Contact3D
      • Damper01
      • Damper02
      • Embedded2D
      • Embedded3D
      • Joint
      • Mass
      • SingleSection
      • Spring01
      • Spring02
      • Tie
      • TranslationConnector
    • Truss
      • T2D2
      • T2D2S
      • T3D2
      • T3D2S
  • Group
    • CustomNodeGroup
    • NodeGroup
    • ElementGroup
    • GroupGroup
  • Integrator
    • Implicit
      • Linear
      • BatheTwoStep
      • GeneralizedAlpha
      • OALTS
      • GSSSS
      • Newmark
        • LeeNewmark
        • LeeElementalNewmark
        • LeeNewmarkFull
        • LeeNewmarkIterative
        • Newmark
        • RayleighNewmark
        • WilsonPenzienNewmark
        • NonviscousNewmark
    • Explicit
      • Tchamwa
      • BatheExplicit
      • GeneralizedAlphaExplicit
  • Material
    • Guide
      • Metal
      • Customisation
    • Material1D
      • Concrete
        • ConcreteCM
        • ConcreteExp
        • ConcreteTsai
        • ConcreteTable
        • ConcreteK4
      • Degradation
        • Degradation
        • CustomStrainDegradation
        • CustomStressDegradation
        • Dhakal
        • TrilinearStrainDegradation
      • Elastic
        • BilinearElastic1D
        • Elastic1D
        • AsymmElastic1D
        • MultilinearElastic1D
        • PolyElastic1D
        • NLE1D01
        • Sinh1D
        • Tanh1D
        • CustomElastic1D
      • Hysteresis
        • AFC
        • AFCN
        • BilinearOO
        • BilinearPO
        • BoucWen
        • BWBN
        • Flag
        • MPF
        • MultilinearOO
        • MultilinearPO
        • RambergOsgood
        • SimpleHysteresis
        • SlipLock
        • SteelBRB
        • Trivial
        • Gap01
      • Viscosity
        • Kelvin
        • Maxwell
        • NonlinearViscosity
        • BilinearViscosity
        • CustomViscosity
        • Viscosity01
        • Viscosity02
        • CoulombFriction
        • Nonviscous01
      • vonMises
        • Subloading1D
        • ArmstrongFrederick1D
        • AFCO1D
        • Bilinear1D
        • BilinearMises1D
        • CustomGurson1D
        • CustomMises1D
        • ExpGurson1D
        • ExpMises1D
        • Mises1D
        • Multilinear1D
        • NonlinearGurson1D
        • VAFCRP1D
    • Material2D
      • AxisymmetricElastic
      • Concrete21
      • Concrete22
      • DuncanSelig
      • Elastic2D
      • Rebar2D
    • Material3D
      • CamClay
        • BilinearCC
        • ExpCC
        • NonlinearCamClay
        • ParabolicCC
      • Concrete
        • CDP
        • CDPM2
        • Rebar3D
        • TableCDP
        • CustomCDP
      • Damage
        • IsotropicDamage
        • LinearDamage
      • DruckerPrager
        • BilinearDP
        • ExpDP
        • CustomDP
        • NonlinearDruckerPrager
      • Elastic
        • BlatzKo
        • IsotropicElastic3D
        • IsotropicNonlinearElastic3D
        • MooneyRivlin
        • NLE3D01
        • OrthotropicElastic3D
        • Yeoh
      • Hoffman
        • BilinearHoffman
        • ExpHoffman
        • CustomHoffman
        • NonlinearHill
        • NonlinearHoffman
        • TimberPD
      • Sand
        • SimpleSand
        • DafalisaManzari
      • vonMises
        • ArmstrongFrederick
        • BilinearJ2
        • BilinearPeric
        • CustomGurson
        • TableGurson
        • CustomJ2
        • ExpGurson
        • ExpJ2
        • MultilinearJ2
        • NonlinearGurson
        • NonlinearJ2
        • NonlinearPeric
        • PolyJ2
        • VAFCRP
        • Subloading
    • MaterialOS
      • ElasticOS
    • Wrapper
      • Axisymmetric
      • Laminated
      • Parallel
      • PlaneStrain
      • PlaneSymmetric
      • PlaneStress
      • Rotation2D
      • Rotation3D
      • Sequential
      • Stacked
      • Uniaxial
      • OS146
      • OS146S
      • Substepping
  • Recorder
    • Recorder
    • OutputType
  • Section
    • Code
      • EU
      • NZ
      • US
    • Section1D
      • Circle1D
      • Fibre1D
      • Rectangle1D
      • TrussSection
    • Section2D
      • Bar2D
      • Box2D
      • Circle2D
      • CircularHollow2D
      • Fibre2D
      • HSection2D
      • ISection2D
      • Rectangle2D
      • TSection2D
    • Section3D
      • Bar3D
      • Box3D
      • Circle3D
      • CircularHollow3D
      • Fibre3D
      • ISection3D
      • Rectangle3D
      • TSection3D
    • SectionOS
      • Cell3DOS
      • Fibre3DOS
    • SectionNM
      • SectionNM
      • NM2D1
      • NM2D2
      • NM2D3
      • NM2D3K
      • NM3D1
      • NM3D2
      • NM3D3
      • NM3D3K
  • Solver
    • BFGS
    • MPDC
    • Newton
    • AICN
    • Ramm
  • Step
    • Overview
    • ArcLength
    • Buckle
    • Dynamic
    • Frequency
    • Optimization
    • Static
  • Developer
    • Prerequisites
    • C Style Interface
      • material
    • CPP Style Interface
      • material
      • element
      • constraint
Powered by GitBook
On this page
  • Caveat
  • Theory
  • Collect Strain Energy
  • Averaging
  • Stabilization
  • Addition/Deletion of Elements
  • Convergence
Edit on GitHub
  1. Criterion

StrainEnergyEvolution

PreviousMinResistanceNextBeam

Last updated 3 years ago

This StrainEnergyEvolution criterion implements the BSEO Method. It can be used in structural optimization. To define one,

criterion StrainEnergyEvolution (1) (2) (3) [4] [5] [6] [7] [8]
# (1) int, unique criterion tag
# (2) int, increment of rejection level in percentage
# (3) int, target rejection level in percentage
# [4] double, weight of central element, used in averaging
# [5] int, number of iterations of averaging
# [6] int, reactivation rate in percentage
# [7] double, propagation weight
# [8] double, tolerance

Caveat

  1. It is recommended to use consecutive tags for elements starting from 111. Large tags will increase memory usage.

Theory

Readers can refer to the monograph for detailed discussion of the Bi-directional Evolutionary Structural Optimization Method.

Here a brief introduction is presented to explain what the StrainEnergyEvolution criterion does to the model.

To perform optimization with StrainEnergyEvolution, a Optimization step shall be defined instead of a standard static step.

step Optimization (1) [2]
# (1) int, unique step tag
# [2] double, step length, default: 1.0

The ESO step performs the complete static analysis step and calls the criterion to modify/update the model repeatedly until an exit signal is received. The exit signal is often returned by a proper criterion.

Collect Strain Energy

The first step is to collect the normalized strain energy of each element. If the element is currently inactive, the corresponding strain energy will be set to zero. The normalization uses the characteristic length of the corresponding element.

Averaging

Instead of the original node based averaging procedure, which requires to compute the sensitivity parameter of the connected nodes, the StrainEnergyEvolution criterion uses a convolution filter type process. The averaged strain energy is updated by computing the weighted average of the strain energy of all connected elements. Say the target element, denoted with subscript jjj, is connected to m=n−1m=n-1m=n−1 elements. Accounting for the target element itself, there are nnn elements under consideration. The strain energy of each element before averaging is denoted by αi\alpha_iαi​. Then the averaged strain energy of that element αˉ\bar\alphaαˉ can be computed by

αˉj=∑i=1nwiαi,wj=Wwifor i≠j,∑i=1nwi=1.\bar\alpha_j=\sum^{n}_{i=1}w_i\alpha_i,\qquad{}w_j=Ww_i\quad\text{for }i\neq{}j,\qquad\sum^{n}_{i=1}w_i=1.αˉj​=i=1∑n​wi​αi​,wj​=Wwi​for i=j,i=1∑n​wi​=1.

The parameter WWW is controlled by the fourth input argument [4].

For the above averaging process, each element can affect the adjacent elements, resulting in a smoothed distribution of strain energy. Such a process can be repeated several times to further average the result. The number of the averaging process is controlled by the fifth input argument [5].

Stabilization

Collect all averaged strain energy into a vector and denote it with αk\mathbf{\alpha}^kαk, it is stabilized by considering the strain energy of the previous iteration αk−1\mathbf{\alpha}^{k-1}αk−1,

αk←(1−wp)αk−1+wp12αk.\mathbf{\alpha}^k\leftarrow\left(1-w_p\right)\mathbf{\alpha}^{k-1}+w_p\dfrac{1}{2}\mathbf{\alpha}^k.αk←(1−wp​)αk−1+wp​21​αk.

So even if some elements are deleted in the current iteration by accident, they can be added back to the model in the next iteration as the stabilized αk\mathbf{\alpha}^kαk now has some memory. The parameter wpw_pwp​ is controlled by input parameter [7].

Addition/Deletion of Elements

The rejection ratio starts from zero with an increment of Δr\Delta{}rΔr till reaching the target rejection ratio rtargetr_ {target}rtarget​ and then stays unchanged. The increment Δr\Delta{}rΔr is controlled by parameter (2) and the rejection ratio rtargetr_{target}rtarget​ is controlled by parameter (3).

For the current rejection ratio rrr, r%r\%r% of total elements will be removed in the current iteration. However, before removing any elements, some already removed elements will be added first, called reactivation. The number of reactivated elements is controlled by the reactivation ratio rar_ara​, which is parameter [6]. So ra%r_a\%ra​% of already removed elements will be added to the model.

After reactivation, the number of active elements is the sum of numbers of reactivated elements and already active elements.

The averaged strain energy of all active elements will be sorted to determine which elements shall be removed. The number of removed elements is the difference of current number of active elements and the current rejection ratio.

Convergence

The convergence is achieved when the relative energy difference between two adjacent iterations is smaller than the tolerance, which is controlled by parameter [8].

Evolutionary Topology Optimization of Continuum Structures: Methods and Applications