FactoryAlgorithmsOptiCroSec(Model, IReadOnlyListCroSec, IReadOnlyListDouble, IReadOnlyListDouble, String, Int32, Double, Int32, Double, Int32, Boolean, Boolean, ListString, ListString, Double, Double, Boolean) Method
Note: This API is now obsolete.
Optimize the cross section of beams and shells for stress and maximum deflection. It is an iterative procedure.
All load-cases are considered for utilization and displacement.
Namespace: Karamba.FactoriesAssembly: KarambaCommon (in KarambaCommon.dll) Version: 3.0.8.0+eb23a7103f0eca0b6d808121e15fec6899194e15
[ObsoleteAttribute("This method is obsolete. Use a different implementation instead.")]
public virtual Model OptiCroSec(
Model model,
IReadOnlyList<CroSec> crosecs,
out IReadOnlyList<double> maxDisplacements,
out IReadOnlyList<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
)
<ObsoleteAttribute("This method is obsolete. Use a different implementation instead.")>
Public Overridable Function OptiCroSec (
model As Model,
crosecs As IReadOnlyList(Of CroSec),
<OutAttribute> ByRef maxDisplacements As IReadOnlyList(Of Double),
<OutAttribute> ByRef compliances As IReadOnlyList(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:
[ObsoleteAttribute(L"This method is obsolete. Use a different implementation instead.")]
virtual Model^ OptiCroSec(
Model^ model,
IReadOnlyList<CroSec^>^ crosecs,
[OutAttribute] IReadOnlyList<double>^% maxDisplacements,
[OutAttribute] IReadOnlyList<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
)
[<ObsoleteAttribute("This method is obsolete. Use a different implementation instead.")>]
abstract OptiCroSec :
model : Model *
crosecs : IReadOnlyList<CroSec> *
maxDisplacements : IReadOnlyList<float> byref *
compliances : IReadOnlyList<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
[<ObsoleteAttribute("This method is obsolete. Use a different implementation instead.")>]
override OptiCroSec :
model : Model *
crosecs : IReadOnlyList<CroSec> *
maxDisplacements : IReadOnlyList<float> byref *
compliances : IReadOnlyList<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
- model Model
- Model for which cross sections shall be optimized.
- crosecs IReadOnlyListCroSec
- Sorted list of cross sections to select from for optimization. Cross sections coming
first are first tested for appropriateness.
- maxDisplacements IReadOnlyListDouble
- Maximum displacement in each load-case after optimization.
- compliances IReadOnlyListDouble
- Resulting compliance (i.e. internal elastic energy) for each load-case.
- message String
- Information regarding the optimization run.
- ulsIter Int32 (Optional)
- Number of iterations for the ultimate limit state.
- targetUtil Double (Optional)
- Target value for the element utilization.
- slsIter Int32 (Optional)
- Number of iterations for the serviceability limit state (limiting maximum deformation).
- maxDeformLimit Double (Optional)
- 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 Int32 (Optional)
- 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 Boolean (Optional)
- 'true' if cross section design should be elastic, otherwise plastic design is performed.
- bisectionSearch Boolean (Optional)
- If 'true' then sufficient cross sections are searched for using a bisection algorithm.
- elemIds ListString (Optional)
- Identifiers of elements to be optimized. If null all elements are optimized.
- elemGrpIds ListString (Optional)
- Identifiers of element sets which shall have identical cross sections. In case of shells all
faces of the shell have the same height.
- gammaM0 Double (Optional)
- Safety factor on the material if buckling does not govern the cross section design.
- gammaM1 Double (Optional)
- Safety factor on the material if buckling governs the cross section design.
- swayFrame Boolean (Optional)
- flag which indicates when true that buckling involves sideways movement of the structure.
ModelModel with optimized cross sections.