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
andb
, respectively. - ExtLoad=a,b,EM: Analyze until axial strain and moment reach
a
andb
, respectively. - ExtLoad=a,b,NK: Analyze until axial force and curvature reach
a
andb
, respectively. - ExtLoad=a,b,NM: Analyze until axial force and moment reach
a
andb
, 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 is0
PHC500A-PM@2
: when the axial force level is2%
of the failure axial force- ...
PHC500A-PM@100
: when the axial force level is100%
of the failure axial force (moment is0
)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
...