Skip to content

Command's Manual

General Information

The input files used in hfSectionAnalyzer/hfSectionVisualizer are text files with blocks containing keywords, similar to those used in hfAnalyzer/hfVisualizer. The # character denotes a comment, and anything after it is ignored. Blank lines are also ignored. Other than the name following the Name keyword, the input is not case-sensitive.

Keywords used include *Unit, *Function, *Material, *Section, *SectionStop, *SectionSignal, *SectionAnalysis, and more. Among these, *Function, *Material, and *Section are commands shared with hfAnalyzer, while the rest are commands specific to hfSectionAnalyzer/hfSectionVisualizer.

*Unit, forceUnit-lengthUnit

*Function, TYPE=type, Name=name
...

*Material, TYPE=UConcrete, Name=name
...

*Section, TYPE=Beam, Name=name
 *Geometry
  ...
 *CellMeshPoint
  ...
 *Gell, TYPE=Recta


*SectionStop
  material, min_strain, max_strain  
  ...

*SectionSignal
  material, strain, msg
  ...

*SectionAnalysis, Name=name, Section=section,Left|Right Ref=angle,yp,zp, Output=Preselect|All
 *SectionStep, ExtLoad=a,b,EK|EM|NK|NM, Inc=inc
  InitialStress|Stress, cellId, value
  ...
 *SectionStep, ...
  ...
 *SectionStepPM, MaxDeform=maxAxial,maxKappa, Inc=1000, PMPoints=50

*SectionAnalysis, Name=name, Section=section
...

The extension of the input file is not mandatory, but it is commonly .sec. Once analysis is performed, a log file and an .xlsx file are generated. The log file displays the calculation progress along with the computed section properties. The .xlsx file stores the results of nonlinear section analysis if *SectionAnalysis is present. For example, analyzing RCColumn.sec will result in RCColumn.xlsx containing the nonlinear section analysis results, and the process can be reviewed in the RCColumn.log file.

*Unit

This specifies the unit system. If this command is not present, it indicates that no units are used. It is used in hfSectionVisualizer but ignored in hfSectionAnalyzer. The format is *Unit, forceUnit-lengthUnit, such as *Unit, N-mm. The following units are available:

  • forceUnit: N, kN, tonf, kgf, lb, kip
  • lengthUnit: mm, cm, m, in, ft, yd

*Function

Defines functions required for material model definitions. Among the various functions defined in hfAnalyzer, only the following types can be used:

*Function, TYPE=Multilinear/HognestadCEnv/ParabolaCEnv/FIBCEnv/MPPCEnv/MaekaTEnv

For detailed input, refer to the hfAnalyzer command manual.

*Material

Defines a uniaxial material model. Among the various material models defined in hfAnalyzer, only the following types can be used. Properties such as Poisson's ratio, density, and thermal expansion coefficient are ignored.

*Material, TYPE=IsoElasticity/vonMises/UConcrete/USteel

For detailed input, refer to the hfAnalyzer command manual.

*Section, TYPE=Beam

Among the various sections defined in hfAnalyzer, you can use the Beam type. Subcommands used include *CellMeshPoints, *Cell, etc. These commands are the same as in hfAnalyzer, but the usable *Cell types are as follows:

*Cell, TYPE=Point/*Cell, TYPE=Point,Circle
*Cell, TYPE=Layer/*Cell, TYPE=Layer,Circle,/*Cell, TYPE=Layer,Stack
*Cell, TYPE=Mesh/*Cell, TYPE=Mesh,Circle/*Cell, TYPE=Mesh,Rectangle/*Cell,TYPE=Mesh,WFlange

The subcommand *Geometry is used only in hfSectionVisualizer and ignored in hfSectionAnalyzer; it specifies shape information for mesh generation. It has subcommands like *Point, *Curve, *Face, etc.

*SectionStop

Specifies the strain at which the section analysis should stop for a particular material, if necessary.

*SectionSignal

Specifies messages to output during section analysis for a particular material.

*SectionAnalysis

Specifies the section analysis. Subcommands include *SectionStep and *SectionStepPM. *SectionStep specifies the section analysis steps, and *SectionStepPM specifies the analysis steps to calculate the PM diagram.

*SectionStop includes data lines where you input the material, minimum strain (min_strain), and maximum strain (max_strain) at which the analysis should stop. *SectionSignal includes the material, strain condition (strain) at which to output the message, and the output message (msg). These two commands are optional. The following is an example:

*SectionStop
 conc,-0.005,
 rebar,-0.08,0.08

*SectionSignal
 conc, 0.0001042, "Concrete Tesile Failure"   
 rebar, 0.002, "Rebar Yield“

In *SectionAnalysis, Name represents the analysis name and is used as the basis for creating the sheet name in the .xlsx file. After Section=section, Left or Right specifies whether to use the start section or the end section when a tapered section is defined (default is Left). Ref=angle, yp, zp are the reference point and rotation angle (in degrees) (default is 0,0,0). In Output, specifying Preselect outputs stress and strain only at the top and bottom edges of each cell, while All outputs stress and strain at all material points (default is Preselect).

*SectionStep and *SectionStepPM are subcommands of *SectionAnalysis that specify the section analysis steps. *SectionStep refers to general section analysis specifying section deformations or forces. In ExtLoad, depending on the analysis type EK, EM, NK, NM, you specify the values a and b to be reached. Inc=inc is the number of increments, which is optional and defaults to 1.

  • ExtLoad=a,b,EK: Analyze until axial strain and curvature reach a and b, respectively.
  • ExtLoad=a,b,EM: Analyze until axial strain and moment reach a and b, respectively.
  • ExtLoad=a,b,NK: Analyze until axial force and curvature reach a and b, respectively.
  • ExtLoad=a,b,NM: Analyze until axial force and moment reach a and b, respectively.

The following example instructs to analyze in 100 increments until the curvature reaches 0.00004 while maintaining the axial force at 0:

*SectionAnalysis, Name=E1, Section=section
 *SectionStep, ExtLoad=0.,0.00004,NK, Inc=100

*SectionStep can be specified consecutively, allowing for step-by-step section analysis. The following example applies an axial force up to 10, then varies the curvature while maintaining the axial force until failure:

*SectionAnalysis, Name=E1, Section=section
 *SectionStep, ExtLoad=10.,0.,NM
 *SectionStep, ExtLoad=10.,0.04,NK, Inc=100   # Assumption : 0.04 is large enough to fail the section

In the data lines of *SectionStep, you can specify initial stress (InitialStress) or target stress (Stress) for the cells that make up the section, if necessary. InitialStress specifies pretension, and Stress specifies post-tension. cellId is the ID of the cell, and value is the stress value. For example, InitialStress, 2, 1000 means to start the analysis with an initial stress of 1000 in cell 2. Stress, 3, 1000 means that cell 3 should have a stress state of 1000 at the final step of the analysis. Specifying Stress, 1, 0 effectively removes cell 1. The following is an analysis where pretension is applied to cell 2, then axial force is applied, and then curvature is applied until failure:

*SectionAnalysis, Name=PHC500A-N2 Section=PHC500A
 *SectionStep, ExtLoad=0.,0.,NM, Inc=1
   InitialStress, 2, 994.625  # 0.7*fpu
 *SectionStep, ExtLoad=-1766000,0,NM, Inc=1  
 *SectionStep, ExtLoad=-1766000,0.02/250,NK, Inc=1000   

The results of *SectionStep performed within *SectionAnalysis are saved in the sheet named Name in the .xlsx file. The output file has columns like step number, axial strain and axial force (Ex and Nx), curvature and bending moment (Kz, Mz), strain and stress at the material points of the cells (E.C1.1, S.C1.1, etc.), message (Msg.), and so on:

step, Ex, Nx, Kz, Mz, E.C1.1, S.C1.1, ..., Msg.
...

*SectionStepPM

*SectionStepPM is a command for analyzing the PM diagram. Internally, section analysis is performed by changing the axial force level. First, it calculates the failure load when only axial force is applied, using maxAxial as the axial strain value to be applied. Therefore, maxAxial should be a sufficiently large value that can cause compressive failure. Based on the axial failure load, failure analysis is performed while lowering the axial force level. pmpoints refers to the points on the PM diagram, i.e., the axial force levels. maxKappa defines the maximum curvature in each failure analysis, so it should be specified as a sufficiently large value to cause failure. Inc is the number of increments used in each failure analysis. The following is an example of performing PM analysis on a reinforced concrete section:

*SectionAnalysis, Name=RCSec, Section=RCSec
 *SectionStepPM, MaxDeform=-0.005,0.02/250, Inc=1000, PMPoints=50

You can specify *SectionStepPM only once within *SectionAnalysis, and it can be specified after *SectionStep but must be the final analysis step. The following is an example of performing PM analysis on a pretensioned member:

*SectionAnalysis, Name=PHC500A Section=PHC500A
 *SectionStep, ExtLoad=0.,0.,NM, Inc=1
   InitialStress, 2, 994.625  # 0.7*fpu
 *SectionStepPM, MaxDeform=-0.005,0.02/250, Inc=1000, PMPoints=50

*SectionStepPM performs as many section analyses as the number of PMPoints. The results of each section analysis are saved in sheets named Name-PM@plevel, and the deformation/forces at failure points are summarized and saved in the sheet Name-PM. In the above example, since PMPoints=50, the following files are generated:

  • PHC500A-PM@0: when the axial force level is 0
  • PHC500A-PM@2: when the axial force level is 2% of the failure axial force
  • ...
  • PHC500A-PM@100: when the axial force level is 100% of the failure axial force (moment is 0)
  • PHC500A-PM: file summarizing the deformation/forces at failure according to axial force levels

The Name-PM sheet has the following format:

PuLevel, ISTEP,Increment,E,N,K,M,MsgAtMaxPoint,RunningResultMsg
100,2,550,-0.002808,-8827490.751676,0.000000,-0.000000,,Stop Strain Reached
...