Users:Structural Optimization/Response Functions/SurfaceCurvature
Contents |
General Description
Short Info
In the field of structural optimization it is often necessary to apply a constraining of surface curvature in order to maintain manufacturing constraints. To this purpose, Carat++ provides an estimation tool to approximate the mean curvature at a surface node.
Estimation of nodal curvature
The nodal curvature is estimated using the surface normal vector and access vectors to the surrounding nodes. The estimation is based on a local spherical approximation of the geometry (see sketch below). So the radius of curvature r can be computed within the isosceles triangle.
Having computed this approximated radius of curvature for each surrounding node, the mean curvature of the surface is estimated by a weighted sum over all surrounding nodes i, whereat vi is the access vector to the ith node.
Kreisselmeier-Steinhauser weighting
Instead of constraining each single nodal curvature, Carat++ provides a technique to control the curvature within bigger element patches. To this purpose a Kreisselmeier-Steinhauser weighting is used.
Via the weighting parameter ρ the user can control to which extend exceedings of the maximum allowable curvature are weighted.
Input Parameters
Block headline | ||
Parameter | Values, Default(*) | Description |
---|---|---|
OPT-RESPONSE_FCT | int : CURVATURE_PATCH_KS | Function ID and response function type. |
Common compulsory parameters | ||
ETA | real | Finite difference disturbance for sensitivity analysis |
GRAD | DIRECT, ADJOINT | Method of gradient computation |
SA | GLOBAL_FD, SEMI_ANALYTIC, EXACT_SEMI_ANALYTIC, ANALYTIC | Method of derivative computations inside sensitivity analysis |
FDA | FOREWARD, CENTRAL, BACKWARD | Method of finite difference approximation (if neccessary for the chosen sensitivity analysis method) |
DESVAR | OPT-VAR vector of integers | Design variables that are considered in the sensitivity analysis of this response function |
Common optional parameters | ||
WEIGHT | real, 1.0* | The weighting factor for this response function in multi-objective optimization |
ANALYSIS | PC-ANALYSIS int | ID of the underlying analysis |
Specific parameters | ||
NODES | ND-SET int | Node set that includes all nodes this response function yields onto. |
PATCH_SIZE | int | Set of NODES is sub-divided in patches with PATCH_SIZE nodes in each patch. A single response function is created for each of these patches. |
RHO | real | KS-weighting factor. |
Common Compulsory Parameters for Constraints | ||
Parameter | Values, Default(*) | Description |
REL_LIMIT | real | Relative limit for constraint, depending on the actual value. |
ABS_LIMIT | real | Absolute limit for constraint. Only one limit can be defined for a constraint. |
CONSTRAINT_TYPE | INEQUALITY_LT, INEQUALITY_GT, EQUALITY | Type of constraint |
Common Optional Parameters for Constraints | ||
REL_TOLERANCE | real, 0* | Upper relative limit until which an inactive constraint is concidered as an active one |
LAMBDA_ABS_MAX | real, 1/cepsilon* | Upper limit for lagrangian multiplier |
Example of a Complete Input Block
OPT-RESPONSE_FCT 1 : CURVATURE_PATCH_KS WEIGHT=1.0 ETA=1e-06 GRAD=ADJOINT SA= SEMI_ANALYTIC FDA=FOREWARD DESVAR=OPT-VAR 1 ! -- specific parameters NODES=ND-SET 1 PATCH_SIZE = 5 RHO = 15 ! -- constraint parameters ABS_LIMIT = 0.25 ! KAPPA_MAX REL_TOLERANCE = 0.1 CONSTRAINT_TYPE = INEQUALITY_LT LAMBDA_ABS_MAX = 40
A complete test example
Model description
The considered test example is the optimization of a pinched cylinder applying a curvature limitation.
The curvature is controlled via a CURVATURE_PATCH_KS-function using a patch-size of 10 and a rho-parameter of 15. The kappa_max value is set to 7.0.
Input File
Here the full input file can be downloaded.
Documented Results
Based onto the user input, Carat++ automatically generated 22 patches and generated a constraint function for each of them. After 32 optimization steps all constraints are fulfilled and the maximum nodal curvature appearing is 8.4.
10:18:41 -------------------------------------------------------------------------------------- 10:18:41 ID | type | active | lambda | value | tol | psi 10:18:41 20001 inequality yes 0.170140 -0.006070 0.050000 -0.006070 10:18:41 20002 inequality no 0.000000 -0.338485 0.050000 0.000000 10:18:41 20003 inequality no 0.000000 -0.291237 0.050000 0.000000 10:18:41 20004 inequality yes 5.573192 -0.028454 0.050000 -0.028454 10:18:41 20005 inequality no 0.000000 -0.399155 0.050000 0.000000 10:18:41 20006 inequality no 0.000000 -0.399018 0.050000 0.000000 10:18:41 20007 inequality no 0.000000 -0.701880 0.050000 0.000000 10:18:41 20008 inequality no 0.000000 -0.701884 0.050000 0.000000 10:18:41 20009 inequality no 0.000000 -0.708979 0.050000 0.000000 10:18:41 20010 inequality no 0.000000 -0.708979 0.050000 0.000000 10:18:41 20011 inequality no 0.000000 -0.687952 0.050000 0.000000 10:18:41 20012 inequality no 0.000000 -0.687946 0.050000 0.000000 10:18:41 20013 inequality no 0.000000 -0.695694 0.050000 0.000000 10:18:41 20014 inequality no 0.000000 -0.695704 0.050000 0.000000 10:18:41 20015 inequality no 0.000000 -0.257635 0.050000 0.000000 10:18:41 20016 inequality no 0.000000 -0.258434 0.050000 0.000000 10:18:41 20017 inequality no 0.000000 -0.253883 0.050000 0.000000 10:18:41 20018 inequality no 0.000000 -0.253481 0.050000 0.000000 10:18:41 20019 inequality yes 0.266234 0.010527 0.050000 0.010527 10:18:41 20020 inequality yes 0.000000 -0.039598 0.050000 -0.019176 10:18:41 20021 inequality yes 0.252340 -0.012201 0.050000 -0.012201 10:18:41 20022 inequality yes 0.000000 -0.033469 0.050000 -0.016060 10:18:41 ----------------------------------------------------------- 10:18:41 Optimization step 32 finished! 10:18:41 -----------------------------------------------------------
Whos here now: Members 0 Guests 1 Bots & Crawlers 0 |