BESOBeamsolve Method
Perform bi-directional evolutionary structural optimization (BESO) on the beam and truss elements of a model.
Namespace: Karamba.AlgorithmsAssembly: KarambaCommon (in KarambaCommon.dll) Version: 3.0.8.0+eb23a7103f0eca0b6d808121e15fec6899194e15
public static void solve(
Model inModel,
List<string> elemIds,
List<string> elemGrpIds,
List<string> loadCaseIds,
double massRatio,
int nMassIter,
int nMaxIter,
double tenFac,
double comFac,
double sheFac,
double momFac,
double stepFac,
double minDist,
double cutRate,
double softKillFactor,
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),
loadCaseIds As List(Of String),
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,
softKillFactor 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<String^>^ loadCaseIds,
double massRatio,
int nMassIter,
int nMaxIter,
double tenFac,
double comFac,
double sheFac,
double momFac,
double stepFac,
double minDist,
double cutRate,
double softKillFactor,
[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> *
loadCaseIds : List<string> *
massRatio : float *
nMassIter : int *
nMaxIter : int *
tenFac : float *
comFac : float *
sheFac : float *
momFac : float *
stepFac : float *
minDist : float *
cutRate : float *
softKillFactor : float *
history : List<List<bool>> byref *
modelActivationState : List<bool> byref *
weights : List<float> byref *
maxDisp : float byref *
model : Model byref -> unit
Parameters
- inModel Model
- model to run BESO with.
- elemIds ListString
- List of identifiers of single elements that take part in the BESO procedure. By default the whole structure is included.
- elemGrpIds ListString
- List of identifiers of groups of elements that take part in the BESO procedure and shall be switched on and off collectively.
- loadCaseIds ListString
- List of names of load-cases that are considered for BESO.
- massRatio Double
- Target Ratio of remaining mass to initial mass of all elements that take part in the BESO.
- nMassIter Int32
- Intended number of iterations for constantly adding or removing elements in the structure.
- nMaxIter Int32
- Maximum number of iterations for constantly adding or removing elements in the structure.
- tenFac Double
- Weighting factor for beams under tension.
- comFac Double
- Weighting factor for beams under compression.
- sheFac Double
- Weighting factor for beams under shear.
- momFac Double
- Weighting factor for beams under moments.
- stepFac Double
- 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 Double
- Minimum distance between elements changed in one step.
- cutRate Double
- 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.
- softKillFactor Double
- Factor for reducing the stiffness of inactive elements in the calculation (e.g. 1e-5).
- history ListListBoolean
- List of Lists of boolean values: For each iteration a list of booleans signals for each element of the model whether it was on or off.
- modelActivationState ListBoolean
- List of boolean values corresponding to each element in the optimized model. True if the element is active.
- weights ListDouble
- BESO-weight of each active group in descending order.
- maxDisp Double
- Maximum displacement.
- model Model
- Model after BESO.