|
BESOBeamsolve Method
|
Perform bi-directional evolutionary structural optimization (BESO) on the beam and truss elements of a model.
Namespace:
Karamba.Algorithms
Assembly:
KarambaCommon (in KarambaCommon.dll) Version: 1.0.0.0 (1.0.0.0)
Syntax public static void solve(
Model inModel,
List<string> elemIds,
List<string> elemGrpIds,
List<int> loadCaseInds,
double massRatio,
int nMassIter,
int nMaxIter,
double tenFac,
double comFac,
double sheFac,
double momFac,
double stepFac,
double minDist,
double cutRate,
out List<List<bool>> history,
out List<bool> modelActivationState,
out List<double> weights,
out double maxDisp,
out Model model
)
Public Shared Sub solve (
inModel As Model,
elemIds As List(Of String),
elemGrpIds As List(Of String),
loadCaseInds As List(Of Integer),
massRatio As Double,
nMassIter As Integer,
nMaxIter As Integer,
tenFac As Double,
comFac As Double,
sheFac As Double,
momFac As Double,
stepFac As Double,
minDist As Double,
cutRate As Double,
<OutAttribute> ByRef history As List(Of List(Of Boolean)),
<OutAttribute> ByRef modelActivationState As List(Of Boolean),
<OutAttribute> ByRef weights As List(Of Double),
<OutAttribute> ByRef maxDisp As Double,
<OutAttribute> ByRef model As Model
)
public:
static void solve(
Model^ inModel,
List<String^>^ elemIds,
List<String^>^ elemGrpIds,
List<int>^ loadCaseInds,
double massRatio,
int nMassIter,
int nMaxIter,
double tenFac,
double comFac,
double sheFac,
double momFac,
double stepFac,
double minDist,
double cutRate,
[OutAttribute] List<List<bool>^>^% history,
[OutAttribute] List<bool>^% modelActivationState,
[OutAttribute] List<double>^% weights,
[OutAttribute] double% maxDisp,
[OutAttribute] Model^% model
)
static member solve :
inModel : Model *
elemIds : List<string> *
elemGrpIds : List<string> *
loadCaseInds : List<int> *
massRatio : float *
nMassIter : int *
nMaxIter : int *
tenFac : float *
comFac : float *
sheFac : float *
momFac : float *
stepFac : float *
minDist : float *
cutRate : float *
history : List<List<bool>> byref *
modelActivationState : List<bool> byref *
weights : List<float> byref *
maxDisp : float byref *
model : Model byref -> unit
Parameters
- inModel
- Type: Karamba.ModelsModel
model to run BESO with - elemIds
- Type: System.Collections.GenericListString
List of identifiers of single elements that take part in the BESO procedure. By default the whole structure is included. - elemGrpIds
- Type: System.Collections.GenericListString
List of identifiers of groups of elements that take part in the BESO procedure and shall be switched on and off collectively. - loadCaseInds
- Type: System.Collections.GenericListInt32
List of load cases that are considered for BESO - massRatio
- Type: SystemDouble
Target Ratio of remaining mass to initial mass of all elements that take part in the BESO. - nMassIter
- Type: SystemInt32
Intended number of iterations for constantly adding or removing elements in the structure. - nMaxIter
- Type: SystemInt32
Maximum number of iterations for constantly adding or removing elements in the structure. - tenFac
- Type: SystemDouble
Weighting factor for beams under tension. - comFac
- Type: SystemDouble
Weighting factor for beams under compression. - sheFac
- Type: SystemDouble
Weighting factor for beams under shear. - momFac
- Type: SystemDouble
Weighting factor for beams under moments. - stepFac
- Type: SystemDouble
Add/remove n*(1+stepFac) of the n currently active elements in one half-step. Remove/add n*stepFac elements in the next half-step. - minDist
- Type: SystemDouble
Minimum distance between elements changed in one step. - cutRate
- Type: SystemDouble
Limit ratio between the weight of any active element to the mean weight of all active elements. Elements below that limit get removed after the last step. - history
- Type: System.Collections.GenericListListBoolean
List of Listse of boolean values: For each iteration a list of booleans signals for each element of the model whether it was on or off. - modelActivationState
- Type: System.Collections.GenericListBoolean
List of boolean values corresponding to each element in the optimized model. True if the element is active. - weights
- Type: System.Collections.GenericListDouble
BESO-weight of each active group in descending order. - maxDisp
- Type: SystemDouble
Maximum displacement - model
- Type: Karamba.ModelsModel
Model after BESO.
See Also