|
FactoryAlgorithmsOptiCroSec Method
|
Optimize the cross section of beams and shells for stress and maximum deflection. It is an iterative procedure.
Be aware of the fact that NII forces are not updated.
Namespace:
Karamba.Factories
Assembly:
KarambaCommon (in KarambaCommon.dll) Version: 2.2.0.4 (2.2.0.4)
Syntaxpublic virtual Model OptiCroSec(
Model model,
IReadOnlyList<CroSec> crosecs,
out List<double> maxDisplacements,
out List<double> compliances,
out string message,
int ulsIter = 5,
double targetUtil = 1,
int slsIter = 5,
double maxDeformLimit = -1,
int nSamples = 3,
bool elastDesign = true,
bool bisectionSearch = true,
List<string> elemIds = null,
List<string> elemGrpIds = null,
double gammaM0 = 1,
double gammaM1 = 1,
bool swayFrame = true
)
Public Overridable Function OptiCroSec (
model As Model,
crosecs As IReadOnlyList(Of CroSec),
<OutAttribute> ByRef maxDisplacements As List(Of Double),
<OutAttribute> ByRef compliances As List(Of Double),
<OutAttribute> ByRef message As String,
Optional ulsIter As Integer = 5,
Optional targetUtil As Double = 1,
Optional slsIter As Integer = 5,
Optional maxDeformLimit As Double = -1,
Optional nSamples As Integer = 3,
Optional elastDesign As Boolean = true,
Optional bisectionSearch As Boolean = true,
Optional elemIds As List(Of String) = Nothing,
Optional elemGrpIds As List(Of String) = Nothing,
Optional gammaM0 As Double = 1,
Optional gammaM1 As Double = 1,
Optional swayFrame As Boolean = true
) As Model
public:
virtual Model^ OptiCroSec(
Model^ model,
IReadOnlyList<CroSec^>^ crosecs,
[OutAttribute] List<double>^% maxDisplacements,
[OutAttribute] List<double>^% compliances,
[OutAttribute] String^% message,
int ulsIter = 5,
double targetUtil = 1,
int slsIter = 5,
double maxDeformLimit = -1,
int nSamples = 3,
bool elastDesign = true,
bool bisectionSearch = true,
List<String^>^ elemIds = nullptr,
List<String^>^ elemGrpIds = nullptr,
double gammaM0 = 1,
double gammaM1 = 1,
bool swayFrame = true
)
abstract OptiCroSec :
model : Model *
crosecs : IReadOnlyList<CroSec> *
maxDisplacements : List<float> byref *
compliances : List<float> byref *
message : string byref *
?ulsIter : int *
?targetUtil : float *
?slsIter : int *
?maxDeformLimit : float *
?nSamples : int *
?elastDesign : bool *
?bisectionSearch : bool *
?elemIds : List<string> *
?elemGrpIds : List<string> *
?gammaM0 : float *
?gammaM1 : float *
?swayFrame : bool
(* Defaults:
let _ulsIter = defaultArg ulsIter 5
let _targetUtil = defaultArg targetUtil 1
let _slsIter = defaultArg slsIter 5
let _maxDeformLimit = defaultArg maxDeformLimit -1
let _nSamples = defaultArg nSamples 3
let _elastDesign = defaultArg elastDesign true
let _bisectionSearch = defaultArg bisectionSearch true
let _elemIds = defaultArg elemIds null
let _elemGrpIds = defaultArg elemGrpIds null
let _gammaM0 = defaultArg gammaM0 1
let _gammaM1 = defaultArg gammaM1 1
let _swayFrame = defaultArg swayFrame true
*)
-> Model
override OptiCroSec :
model : Model *
crosecs : IReadOnlyList<CroSec> *
maxDisplacements : List<float> byref *
compliances : List<float> byref *
message : string byref *
?ulsIter : int *
?targetUtil : float *
?slsIter : int *
?maxDeformLimit : float *
?nSamples : int *
?elastDesign : bool *
?bisectionSearch : bool *
?elemIds : List<string> *
?elemGrpIds : List<string> *
?gammaM0 : float *
?gammaM1 : float *
?swayFrame : bool
(* Defaults:
let _ulsIter = defaultArg ulsIter 5
let _targetUtil = defaultArg targetUtil 1
let _slsIter = defaultArg slsIter 5
let _maxDeformLimit = defaultArg maxDeformLimit -1
let _nSamples = defaultArg nSamples 3
let _elastDesign = defaultArg elastDesign true
let _bisectionSearch = defaultArg bisectionSearch true
let _elemIds = defaultArg elemIds null
let _elemGrpIds = defaultArg elemGrpIds null
let _gammaM0 = defaultArg gammaM0 1
let _gammaM1 = defaultArg gammaM1 1
let _swayFrame = defaultArg swayFrame true
*)
-> Model Parameters
- model
- Type: Karamba.ModelsModel
Model for which cross sections shall be optimized. - crosecs
- Type: System.Collections.GenericIReadOnlyListCroSec
Sorted list of cross sections to select from for optimization. Cross sections coming
first are first tested for appropriateness. - maxDisplacements
- Type: System.Collections.GenericListDouble
Maximum displacement in each load-case after optimization. - compliances
- Type: System.Collections.GenericListDouble
Resulting compliance (i.e. internal elastic energy) for each load-case. - message
- Type: SystemString
Information regarding the optimization run. - ulsIter (Optional)
- Type: SystemInt32
Number of iterations for the ultimate limit state. - targetUtil (Optional)
- Type: SystemDouble
Target value for the element utilization. - slsIter (Optional)
- Type: SystemInt32
Number of iterations for the serviceability limit state (limiting maximum deformation). - maxDeformLimit (Optional)
- Type: SystemDouble
Limit for maximum deformation not to be surpassed by optimized structure under any load-cases. in case of
negative values no displacement limits are checked. - nSamples (Optional)
- Type: SystemInt32
Number of points along the beam axis for which the cross section design is to be checked.
The minimum is two for beams. For shells the minimum is one. Larger values than one for shells have currently no impact. - elastDesign (Optional)
- Type: SystemBoolean
'true' if cross section design should be elastic, otherwise plastic design is performed. - bisectionSearch (Optional)
- Type: SystemBoolean
If 'true' then sufficient cross sections are searched for using a bisection algorithm. - elemIds (Optional)
- Type: System.Collections.GenericListString
Identifiers of elements to be optimized. If null all elements are optimized. - elemGrpIds (Optional)
- Type: System.Collections.GenericListString
Identifiers of element sets which shall have identical cross sections. In case of shells all
faces of the shell have the same height. - gammaM0 (Optional)
- Type: SystemDouble
Safety factor on the material if buckling does not govern the cross section design. - gammaM1 (Optional)
- Type: SystemDouble
Safety factor on the material if buckling governs the cross section design. - swayFrame (Optional)
- Type: SystemBoolean
flag which indicates when true that buckling involves sideways movement of the structure.
Return Value
Type:
ModelModel with optimized cross sections.
See Also