Computational Design Optimization Using
Distributed Grid Resources
Petri Kere1 and Juha Lento
CSC – the Finnish IT Center for Science
http://www.csc.fi
1Tampere University of Technology
Insitute of Applied Mechanics and Optimization
Acknowledgement: The work of the first author is funded by the Academy of Finland postdoctoral researcher appropriation
Introduction
Parameter studies, genetic algorithms and Monte Carlo type
calculations are examples of pleasantly parallel computational
tasks.
Pleasantly parallel computational tasks can be effectively calculated
in computer clusters or Grids.
Overview:
• Problem formulation
• Modelling
• Optimization task
Problem Statement
Using a given set of layer orientations optimize the laminate lay-up
for maximum failure margin and structural stability with minimum number of layers and
Numerical Example
AS4/3501-6 tply = 0.134 mm E1 = 139.3 GPa E2 = 11.1 GPa G12 = 6.0 GPa ν12 = 0.3 G23 = 3.964 GPa ν23 = 0.4 Xt = 1950 MPa Yt = 48 MPa Xc = 1480 MPa Yc = 200 MPa S12 = 79 MPa ρ = 1580 kg/m3 L = 1.0 m, b = w = 0.1 m Fy = 2.4 kN, Fz = 1.6 kNTsai-Hill failure criterion
z y z F y F
Computational Modelling Tool
Elmer is a software package for solving Partial Differential
Equations (PDEs) [1].
It has been developed at CSC in collaboration with Finnish universities, research laboratories, and industry.
Elmer includes physical models of fluid dynamics, structural
mechanics, electromagnetics, vibroacoustics, and heat transfer, for instance. These are described by PDEs which Elmer solves by
FEM.
Recently the software capabilities have been extended to cover laminated structures composed of orthotropic Fiber-Reinforced Polymer (FRP) composite layers.
Composite Modelling
The plate bending problem has been formulated for a thin or moderately thick laminated composite plate.
Reissner-Mindlin-Von K´arm´an type plate model [2] has been
implemented including analysis capabilities as follows.
• Laminate load response including stress-strain analysis of layers
• Laminate failure prediction including First Ply Failure (FPF)
analysis with generalized failure criterion
• Linear stability
Elmer
ElmerFront
Ply mechanical properties: .sif Mesh Mesh:
Editing ElmerGrid, Ansys,
Abaqus, Fidap, FemLab, FieldView (GridGen)
Pre-processing: Netgen
Laminate structure: Objective and ESAComp, MSC.Laminate ElmerSolver constraint function
Modeler values
.ep .dat
ElmerPost Curve plotting: Matlab
Optimizer
Post-processing: ESAComp
Structural Optimization Problem
The structural weight minimization problem is formulated in discrete form
S = {~y | ~y = arg min ~ x∈S¯
N(~x)} (1)
where ~x = (x1, x2, . . . , xN) is the layer orientation identity design
variable vector defining the laminate lay-up configuration and
¯
S the feasible set of lay-up configurations
¯
S = {~x | g˜(~x) = 1 − RF˜ (~x) ≤ 0} (2) A set of four allowable layer orientations is defined as
Optimization for Strength and Stability
The multi-criteria optimization problem is formulated asmax ~ x∈S RF(~x) λ(~x) = max ~ x∈S ~z(~x) (3)
The image of the feasible set in the criterion space is
Λ = {~z ∈ R2 | ~z = ~z(~x), ~x ∈ S}.
A solution ~x∗ is Pareto optimal for the problem (3) if and only if
there exists no ~x ∈ S such that zi(~x) ≥ zi(~x∗) for all i = 1, 2 and
zi(~x) > zi(~x∗) for at least one i = 1, 2.
The points ~z ∗ = ~z(~x∗) ∈ Λ in the criterion space are called the
Achievement Function Approach
The achievement problem by Wierzbicki [3] to be solved is
min ~ z∈Λ sz¯(~z) (4) sz¯(~z) = max i=1,2{ρi(¯zi − zi)} + c 2 X i=1 [wi(max{1 − zi, 0})] (5)
where z¯i ∈ R, i = 1, 2 are arbitrary reference objectives
characterizing aspiration levels for the given criterion vector.
At the jth cycle ρi = wi/(max zi(j) − min zi(j)) and z¯i = max zi(j)
with some fixed weighting vector w >~ 0 and c > 0.
Search Space
The algorithm begins with the generation of initial population, i.e., permutations of Symmetric Even (SE) laminate lay-ups.
At each iteration cycle design alternatives are generated as follows.
~ x(j+1) ∈ X(j+1) = (~x(j), 3, 4), (~x(j), 4, 3), (3, 4, ~x(j)), (4, 3, ~x(j)), (~x(j), 1, 1), (1, ~x(j), 1), (1, 1, ~x(j)), (~x(j), 1, 2), (1, ~x(j), 2), (1, 2, ~x(j)), (~x(j), 2, 1), (2, ~x(j), 1), (2, 1, ~x(j)), (~x(j), 2, 2), (2, ~x(j), 2), (2, 2, ~x(j)) (6)
Here ~x(j) denotes half of the selected laminate, e.g., [0/90/ ± θ]SE
Datastructures and Parallelization
u{w~} i ? ' & $ % u θ, ~x, ~z ? {s(~z)} uθ, ~x, {w~} j ? ' & $ % u u ? ' & $ % u B B B B B Nu ? ' & $ % u ? u ? ' & $ % u ? u ? ' & $ % } parents chidren ~x ∈ IN 0th Generation } parents ~x ∈ IN chidren ~x ∈ IN+2 1st Generation } parents ~x ∈ IN+2 chidren ~x ∈ IN+4 2nd GenerationGeneration’s “Flow Chart”
1. Select parents from previous Generation using sz¯(~z)
2. Compute (nonlinear) constraint function g˜(~x) and check
convergence
3. Generate children from parent’s design point (θ, ~x)
Computation of Objective Functions
optimizer {θi, ~xi} −→ ←− {~z(θi, ~xi)} filter jobf iles −→ ←− resultf iles executor• Optimizer implements the search algorithm
• Filter transforms optimizer’s requests to Executor’s job descrip-tion and parses job results
• Executor runs the jobs in Grid (or in a cluster)
• Optimizer and executor are persistent, i.e. save their state and automatically continue after restart
Submitting a Single Job to Grid Manually
• User creates the job specification myjob.xrsl
• User “logs in” to the Grid: grid-proxy-init
• User submits the job to Grid: ngsub -f myjob.xrsl
• User monitors the job status: ngstat JOB NAME or ngcat
JOB NAME
• User downloads the results: ngget JOB NAME
These tasks are to be automated by filter and executor modules for
Job Description Example
&(rsl_substitution = (TEMPLATE "/home/jlento/PYTHON/NGMCO/TEMPLATE" )) (jobName = "elmer-TEMPLATE" )
(executable = "wrapper.sh" )
(inputfiles = (wrapper.sh $(TEMPLATE)/wrapper.sh ) (laminate.opt $(TEMPLATE)/laminate.opt ) (Shell.sif $(TEMPLATE)/Shell.sif ) (unchangebles.tar.gz $(TEMPLATE)/unchangebles.tar.gz ) ) (executables = lib/ld-linux.so.3 lib/elements.def ElmerSolver lib/ld-linux.so.3 lib/libc.so.6 lib/libcxa.so.3 lib/libg2c.so.0 lib/libSolver.so Shell) (outputfiles = (layup.opt "" )) (stdout = stdout.txt ) (stderr = stderr.txt ) (cache = yes ) (disk = 150 ) (cpuTime = 3 ) (|(architecture = i686 ) (architecture = i386 ))
Results
w1 w2 Lay-up RF˜ RF λ 0.13 0.87 [90/ ± 55/7(0)]SE 1.00274 1.41723 0.42676 0.15 0.85 [90/ ∓ 50/7(0)]SE 1.10132 1.43038 0.40723 0.20 0.80 [90/ ∓ 45/7(0)]SE 1.14626 1.44884 0.38928 0.25 0.75 [90/ ± 40/7(0)]SE 1.21515 1.47442 0.37288 c = 9.0 · 10−7 z y x z F y FSummary
NorduGrid is• Production class grid facility
• Running since summer 2002
• Open source
• Simple to use
• In active developement
References
[1] ELMER web site at www.csc.fi/elmer.
[2] P. Kere and M. Lyly. Nonlinear Analysis and Design of Laminated
Composites using Reissner-Mindlin-Von K´arm´an Type Plate Model. To appear in Proc. 4th European Congress on Computational Methods in Applied Sciences and Engineering (ECCOMAS 2004), Jyv¨askyl¨a, Finland, 24-28 July 2004. P. Neittaanm¨aki et. al., eds.
[3] A. P. Wierzbicki. The Use of Reference Objectives in Multiobjective Optimization. In G. Fandel and T. Gal, eds., Multiple Criteria Decision Making Theory and Applications, Lecture Notes in Economics and
Mathematical Systems 177, 468–486, Berlin: Springer-Verlag, 1980. [4] NorduGrid web site at www.nordugrid.org.