Users:Structural Optimization/Response Functions/SurfaceCurvature
(→General Description) |
|||
(9 intermediate revisions by one user not shown) | |||
Line 23: | Line 23: | ||
[[ File:curv_ks_formula2.png |350px | center | KS formulation for one patch ]] | [[ File:curv_ks_formula2.png |350px | center | KS formulation for one patch ]] | ||
− | Via the weighting parameter | + | Via the weighting parameter ρ the user can control to which extend exceedings of the maximum allowable curvature are weighted. |
+ | |||
+ | |||
+ | == Input Parameters == | ||
+ | |||
+ | {| border="1" cellpadding="3" cellspacing="0" | ||
+ | |colspan="3" style="background:#efefef;"| Block headline | ||
+ | |- | ||
+ | !Parameter | ||
+ | !Values, Default(*) | ||
+ | !Description | ||
+ | |- | ||
+ | !OPT-RESPONSE_FCT | ||
+ | |''int'' : CURVATURE_PATCH_KS | ||
+ | |Function ID and response function type. | ||
+ | |- | ||
+ | {{Users:Structural Optimization/Response Functions/Common Parameters}} | ||
+ | |- | ||
+ | |colspan="3" style="background:#efefef;"| 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. | ||
+ | |- | ||
+ | {{Users:Structural Optimization/Response Functions/Common Parameters for Constraints}} | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | === Example of a Complete Input Block === | ||
+ | |||
+ | <pre> | ||
+ | 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 | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | == A complete test example == | ||
+ | |||
+ | === Model description === | ||
+ | The considered test example is the optimization of a pinched cylinder applying a curvature limitation. | ||
+ | |||
+ | [[File:RespFunc_curvKS_system.jpg | center | 300px | pinched cylinder]] | ||
+ | |||
+ | 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. | ||
+ | |||
+ | <pre> | ||
+ | 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 ----------------------------------------------------------- | ||
+ | </pre> | ||
+ | |||
+ | [[File:RespFunc_curvKS_res.png | center | 300px | nodal curvature]] |
Latest revision as of 10:27, 8 December 2016
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 0 Bots & Crawlers 1 |