Users:Structural Optimization/Response Functions/SurfaceCurvature

From Carat++ Public Wiki
< Users:Structural Optimization | Response Functions(Difference between revisions)
Jump to: navigation, search
(Input Parameters)
 
(6 intermediate revisions by one user not shown)
Line 43: Line 43:
 
|colspan="3" style="background:#efefef;"| Specific parameters
 
|colspan="3" style="background:#efefef;"| Specific parameters
 
|-
 
|-
!NUM_EIGENVALUE
+
!NODES
 +
|ND-SET ''int''
 +
|Node set that includes all nodes this response function yields onto.
 +
|-
 +
!PATCH_SIZE
 
|''int''
 
|''int''
|Number of eigenvalue to be considered. NUM_VALUE has to be smaller or equal the NUM_ROOT flag inside the eigenvalue analysis.
+
|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}}
 
{{Users:Structural Optimization/Response Functions/Common Parameters for Constraints}}
Line 54: Line 62:
  
 
<pre>
 
<pre>
OPT-RESPONSE_FCT 1 : EIGENVALUE
+
OPT-RESPONSE_FCT 1 : CURVATURE_PATCH_KS
  WEIGHT=1.0 ANALYSIS=PC-ANALYSIS 1 ETA=1e-06
+
  WEIGHT=1.0
  GRAD=ADJOINT SA=SEMI_ANALYTIC FDA=FOREWARD
+
ETA=1e-06
! -- response function dependant parameters
+
  GRAD=ADJOINT  
  NUM_EIGENVALUE = 1
+
SA= SEMI_ANALYTIC
 +
FDA=FOREWARD
 +
DESVAR=OPT-VAR 1
 +
! -- specific parameters  
 +
  NODES=ND-SET 1
 +
PATCH_SIZE = 5
 +
RHO = 15
 
! -- constraint parameters
 
! -- constraint parameters
  REL_LIMIT = 1.1
+
  ABS_LIMIT = 0.25      ! KAPPA_MAX
 
  REL_TOLERANCE = 0.1
 
  REL_TOLERANCE = 0.1
 
  CONSTRAINT_TYPE = INEQUALITY_LT
 
  CONSTRAINT_TYPE = INEQUALITY_LT
  LAMBDA_ABS_MAX = 20
+
  LAMBDA_ABS_MAX = 40
 
</pre>
 
</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.

Sketch of curvature estimation in 1D

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.

Curv ks formula.png

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.

KS formulation for one patch

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.

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.

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 ----------------------------------------------------------- 
nodal curvature




Whos here now:   Members 0   Guests 0   Bots & Crawlers 1
 
Personal tools
Content for Developers