<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>PROG</title>
	<atom:link href="http://albertopugnale.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://albertopugnale.wordpress.com</link>
	<description>Engineering Architecture: Genetic algorithms (GAs) in Architectural Design</description>
	<lastBuildDate>Mon, 13 Jul 2009 12:29:51 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='albertopugnale.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/a8f75376bc88f132fbd74ff57d95c77d?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>PROG</title>
		<link>http://albertopugnale.wordpress.com</link>
	</image>
			<item>
		<title>Genetic Algorithms</title>
		<link>http://albertopugnale.wordpress.com/2009/07/13/genetic-algorithms/</link>
		<comments>http://albertopugnale.wordpress.com/2009/07/13/genetic-algorithms/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 12:27:23 +0000</pubDate>
		<dc:creator>albertopugnale</dc:creator>
				<category><![CDATA[Evolutionary techniques]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://albertopugnale.wordpress.com/?p=131</guid>
		<description><![CDATA[A first draft without images and examples for an introduction to GAs on my PhD Thesis. 
GENERAL OVERVIEW
A genetic algorithm (GA) is (defined by Goldberg) a search algorithm that is inspired to the mechanics of natural evolution. (first part of Golberg definition) (an optimization technique, but Holland prefer to focus the attention on improvement)
In contrast with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=albertopugnale.wordpress.com&blog=863692&post=131&subd=albertopugnale&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A first draft without images and examples for an introduction to GAs on my PhD Thesis. </p>
<p>GENERAL OVERVIEW</p>
<p>A genetic algorithm (GA) is (defined by Goldberg) a search algorithm that is inspired to the mechanics of natural evolution. (first part of Golberg definition) (an optimization technique, but Holland prefer to focus the attention on improvement)</p>
<p>In contrast with many others evolution-inspired algorithms that were studied starting from the 1950s for the optimization and machine learning, the theoretical and mathematical framework of Genetic Algorithms was developed by John Holland and his team in the 1960s, and finally formalized in 1975 (Holland), as the result of a more general study on the phenomenon of natural adaptation in order to simulate the biological evolution under computer systems. Originally defined by Holland as “genetic plans” they were soon renamed by his doctoral students, replacing the term “plan” with “algorithm”, in order to focus the attention on the role of computation. (introduction Holland)</p>
<p>Only in the 1980s genetic algorithms received an increasing recognition by scientists and studies ranging from biology, artificial intelligence, engineering and business to social sciences became to appear. (p.126 Goldberg) (see also Mitchell p.16)</p>
<p>WHY THEY ARE GOOD</p>
<p>When we deal with complex problems (nei quali è difficile trovare un metodo analitico di risoluzione), such as air-traffic programming, weather forecasts, share portfolios balance and electronic circuits design, at present genetic algorithms provide a tool to solve them and to find optimal or sub-optimal solutions.</p>
<p>Con riferimento al mondo delle costruzioni i problemi affrontati con queste tecniche riguardano l’ottimizzazione topologica di strutture di ponti e grandi luci in generale, la ricerca di forma di gusci e membrane, la risoluzione di problemi geometrici complessi come le strutture reciproche.</p>
<p>At present, genetic algorithms are used to deal with complex adaptive systems due to their robustness, efficiency and flexibility. (A good introduction to GAs is Golberg 1989, in which it is explained how they are robust and efficient.)</p>
<p>ELEMENTS OF A GENETIC ALGORITHM</p>
<p>Any clearly defined problem can be formulated in genetic terms (Koza, p.18) following the four major steps defined by Koza: (p.27)</p>
<p>-        Determining the representation scheme</p>
<p>-        Determining the fitness measure</p>
<p>-        Determining the parameters and variables for controlling the algorithm</p>
<p>-        Determining the way of designating the result and the criterion for terminating a run</p>
<p>TERMINOLOGY</p>
<p>The specific terminology for GAs derives from natural systems as well as from computer science technical vocabulary. For this reason, we find in technical literature the same thing with two different, but equivalent, terms. (p.21)</p>
<p>The followings are the main used terms:</p>
<p>- we can refer to specific genetic codes as “strings” basing on the computer science vocabulary. On the contrary as “chromosomes” with reference to the biological world;</p>
<p>- the general genetic constitution of an individual is called “structure” in computer science and “genotype” in biology;</p>
<p>- the actual observables characteristics of an individual are defined as “parameter set” or “solution alternative” or “point” in computer science. In natural systems we refer to them with the term “phenotype”;</p>
<p>- the basic unit of a genetic code is the “Gene” in natural systems and “(((X)))” in artificial;</p>
<p>- (((alleles (are the values) natural, features or detectors with different values)))</p>
<p>- the position of a gene in a genetic code is called “locus” in biology and “string position” in computer science.</p>
<p>- individual, population</p>
<p>It is important to avoid the mixed use of artificial and natural terminology at the same time. Indeed, in this thesis only the most common biological vocabulary will be used.</p>
<p>CLASSIFICATION (ref Tadei)</p>
<p>-evolutionary or not</p>
<p>- single solution multiple solution</p>
<p>- global search local search</p>
<p>After almost thirty year they have been described for the first time [Holland 1975], and after a large diffusion of theoretical studies and applications, the status of Genetic Algorithms (GA) in the scientific research still does not seem to be well defined. As many other mathematical models, starting from neural networks, going through fuzzy logic, simulated annealing techniques, and arriving to particle swarm optimization, ant colony optimization and the &#8217;shuffled frog leaping&#8217; algorithm, all these approaches to the solution of mathematical problems were born as a tentative to explain, or at least to imitate, some natural phenomena related to the world of life. The history of neural networks is quite interesting from this point of view: when they were described for the first time [Rumelhart and Mc Lelland, 1988] the contest was cognitive psychology and the interest to the parallel microstructure of thought was in opposition with a more synthetic &#8220;higher level&#8221; approach [Minsky, 1985]. Only a few years after the enthusiasm fade away, when scientists understood that having a local model of neuronal behavior is quite different from being able to simulate the parallel interactions between many billions of neurons.</p>
<p>In scientific literature we find papers on genetic algorithms under different branches: in Operation Research (OP) they are classified as a heuristic or semi-heuristic technique for combinatory optimization; in biology they are considered as a suitable model for living beings natural evolution. In architecture and structural engineering we are mainly concerned with their capability to explore a dominion of possible configurations looking for the best one, form a specific point of view defined in the so called fitness function.</p>
<p>DEVELOPMENT OF A GENETIC ALGORITHM</p>
<p>Il modo più semplice per comprendere il funzionamento di un algoritmo genetico è quello di provare a costruirne una semplice versione che risolva problemi molto semplici e facilmente definibili, come l’ordinamento di una serie di numeri. Il testo di riferimento consigliato per addentrarsi nell’argomento è sicuramente il “Manuale sulle reti neurali” di Floreano e Mattiussi, che spiega in maniera chiara appunto che cos’è un semplice algoritmo genetico. Un altro libro a vocazione didattica di facile lettura è “An introduction to Genetic Algorithms” di Mitchell. I libri ormai classici come Holland, Goldberg e Koza, presentano tutti un capitolo introduttivo che spiega, attraverso sempre la costruzione di un semplice algoritmo, la costruzione di un AG. La loro natura però più matematica e ingegneristica li porta inevitabilmente ad essere testi più difficili da approcciare, per lo meno all’inizio, provenendo da una formazione di architetto.</p>
<p>GA PROCEDURE</p>
<p>The pseudocode for a GA procedure is written in form of comments followed by the call of the relative function. In this way it is easier to modify each function on the basis of the specific problem leaving the same the general procedure.</p>
<p> * The generate geometry and performance functions depending on the basis of the problems. All the other operators need only a tuning phase in order to be tailored for the specific problem.</p>
<p>** Only if is used a binary coding. In architectural cases we use a real coding strategy because it is more efficient for the crossover operator (it does not cut coordinates).</p>
<pre>Sub GA_Procedure()
  For each &lt;iteration&gt; of the GA procedure
    //Defined only with a specific reference problem
    Read input parameters (input geometry)
    Define the solutions domain
    //
    For each &lt;individual&gt; in the &lt;population&gt;
      //Generate the geometry in the graphic interface
      Call GenerateGeometry(&lt;individual&gt;)*
      //Calculate the &lt;fitness&gt; value of the individual
      Call Performance(&lt;individual&gt;)*
    Next
    //Sort the population individuals on the basis of their fitness
    Call SortPopulation()
    //Select individuals for reproduction
    Call RouletteWheelSelection()
    //Codify the design variables**
    Call DecimalToBinary**
    //Create a new population by means of a crossover reproduction
    Call GenerateNewPopulation()
    //Mutate randomly some genes of new individuals
    Call Mutations()
    //Decodify the design variables**
    Call BinaryToDecimal**
  Next
End Sub</pre>
<p>CODING STRATEGY<br />
La scelta della strategia di codifica è molto importante perché da essa dipende in gran parte la corretta definizione del problema da risolvere e quindi l’efficienza generale dell’algoritmo.<br />
La codifica binaria è sicuramente il modo più semplice per ottenere un codice genetico, ovvero un cromosoma, a partire da alcune variabili numeriche. Inoltre la sua somiglianza con il DNA del mondo naturale fa sì che sia il primo metodo di codifica introdotto nella letteratura di riferimento.<br />
In architettura possiamo codificare distanze, coordinate e qualunque altra variabile numerica sotto forma binaria ma è da sottolineare quanto questo genere di codifica sia in realtà un passaggio superfluo e controproducente nella definizione di un problema in termini genetici. Infatti, la misura di una distanza oppure le coordinate di un punto nello spazio sono già di per sé delle codifiche di una più generale geometrica, non più in binario ma in reale.<br />
Come vedremo parlando dell’operatore della riproduzione, il crossover, il sistema di codifica influisce sulle possibilità di ricombinazioni dei geni e la differenza tra la scelta di una codifica binaria o reale può cambiare di molto la situazione. Immaginando di dover quindi codificare le coordinate di una serie di punti di una geometria di riferimento, il loro valore reale si può considerare come minima entità inscindibile, modificabile e scambiabile, ma non divisibile.<br />
Se infatti le prestazioni in termini ad esempio strutturali di una forma geometrica possono dipendere dalle coordinate di alcuni suoi punti che la definiscono, allora una codifica reale permette di ricombinare delle coordinate efficienti tra loro mentre al contrario una codifica binaria può frammentarle e crearne di nuove in modo assolutamente casuale. La codifica binaria di più coordinate consecutive infatti va a formare un codice genetico che può essere tagliato e ricombinato ad un livello inferiore del valore della coordinata, mentre una codifica reale no. (Da chiarire con figura).<br />
Qui di seguito si riportano gli pseudocodici per costruire le funzioni di codifica e decodifica binaria. Per la codifica reale non è invece necessaria nessuna funzione ma basterà invece immagazzinare come variabile direttamente i valori numerici delle variabili.</p>
<pre>Sub DecimalToBinary()
  //For one-dimensional chromosomes
  Make a &lt;temp&gt; temporary variable
  For each &lt;individual&gt; in the &lt;population&gt;
    For each &lt;gene&gt; of the &lt;individual&gt;
      Set &lt;temp&gt; equal to &lt;gene&gt;
      For each &lt;bit&gt; of the binary coding
        If &lt;temp/2&gt; is equal to the integer part of &lt;temp/2&gt; Then
          Set &lt;temp&gt; equal to &lt;temp/2&gt;
          Set &lt;bit&gt; equal to 0
        Else
          Set &lt;temp&gt; equal to the integer part of &lt;temp/2&gt;
          Set &lt;bit&gt; equal to 1
        End If
      Next
    Next
  Next
End Sub

BINARY DECODING SUBROUTINE
Sub BinaryToDecimal()
  //For one-dimensional chromosomes
  For each &lt;individual&gt; in the &lt;population&gt;
    For each &lt;gene&gt; of the &lt;individual&gt;
      Set &lt;gene&gt; equal to 0
      For each &lt;bit&gt; of the binary coding
        Set &lt;gene&gt; equal to &lt;gene&gt; + [2^(&lt;bitLenght&gt; - &lt;bit&gt;) * &lt;bit&gt;]
      Next
    Next
  Next
End Sub</pre>
<p>GA PARAMETERS</p>
<p>Ampiezza della popolazione</p>
<p>Numero di cicli iterativi</p>
<p>Percentuale dell’operatore di crossover</p>
<p>Percentuale di mutazioni</p>
<p>Numero di elementi di elite</p>
<p>Definizione del dominio e della sua ampiezza</p>
<p>Definizione di un restringimento del dominio sulla base della ricerca della soluzione</p>
<p>GA OPERATORS</p>
<p>I principali operatori di un algoritmo genetico sono tre: la selezione dei migliori individui, la riproduzione degli individui selezionati, l’applicazione di mutazioni genetiche casuali sulla nuova popolazione. Oltre a questi operatori classici si possono aggiungere dei criteri secondari di generale miglioramento dell’efficienza dell’algoritmo. Ne verrà utilizzato soltanto uno, l’elitismo, che consiste nella conservazione da una generazione all’altra di una serie di migliori individui, senza che questi vengano intaccati dalle operazioni degli operatori. In questo modo si evita che il processo evolutivo possa prendere strade involutive o derivare. (Da ampliare)</p>
<p>SELECTION</p>
<p>Il più tradizionale criterio di selezione degli individui di una popolazione è la ruota della fortuna truccata [Rif. Floreano, Goldberg, Koza]. E’ una tecnica che corrisponde figurativamente ad effettuare dei lanci di una roulette che riporta indicati tutti gli individui della popolazione, separati tra loro però non da intervalli regolari come accade nei classici tavoli da casinò ma piuttosto da spazi tanto ampi quanta è la loro probabilità di essere selezionati, calcolata in proporzione alla loro performance. In questo modo, seppur ogni lancio della ruota sia casuale, la probabilità di uscita dei migliori individui è maggiore rispetto ai peggiori, e quindi essi saranno più probabilmente genitori di nuovi individui, tendenzialmente ancora migliori.</p>
<p>Di seguito si riporta lo pseudocodice per costruirsi una ruota della fortuna truccata, che assegni la probabilità di selezione di un individuo sulla base della sua performance, in termini genetici sempre definita come fitness, e per questo calcolo utilizzata nella sua versione normalizzata. (Descrivere meglio con aiuto di immagini)</p>
<pre>Sub RouletteWheelSelection()
  Make &lt;rand&gt; as a random variable
  Make &lt;sumExpValue&gt; as the sum of expected values
  Set &lt;sumExpValue&gt; equal to 0
  For each &lt;individual&gt; in the &lt;population&gt;
    Set the &lt;individual expValue&gt; equal to the &lt;individual normalized fitness&gt;
    Sum the &lt;individual expValue&gt; to &lt;sumExpValue&gt;
  Next
  For each &lt;individual&gt; in the &lt;population&gt; excluding &lt;numElite&gt; best
      individuals
    Set &lt;rand&gt; equal to a random value chosen from 0 to &lt;sumExpValue&gt;
    Make a &lt;counter&gt; variable equal to 0
    Make a &lt;chosenExpValue&gt; variable equal to 0
    While &lt;chosenExpValue&gt; is smaller than &lt;rand&gt;
      Set &lt;counter&gt; equal to &lt;counter&gt; + 1
      Sum &lt;chosenExpValue&gt; with the &lt;individual expValue&gt;
    Loop
    Copy the chosen individual &lt;counter&gt; in the current position of the
    population
  Next
End Sub</pre>
<p>REPRODUCTION</p>
<p>SINGLE POINT OR TWO POINTS CROSSOVER</p>
<pre>Sub GenerateNewPopulation()
  //It is possible to generate more than one cutting point
  Make a &lt;ptCross1&gt; variable that define a first cutting point of the
  &lt;individual chromosome&gt;
  For each &lt;reproduction operation&gt; in the &lt;population&gt;
    Select randomly a first parent &lt;parent1&gt; in the &lt;population&gt;
    Select randomly a second parent &lt;parent2&gt; in the &lt;population&gt;
    If &lt;parent2&gt; is equal to &lt;parent1&gt; Then
      Select randomly another &lt;parent2&gt;
    End If
    //Combine parents genes to create a new &lt;individual&gt;
    //This Function can be called more than one time
    Call Crossover(&lt;parent1&gt;, &lt;parent2&gt;, &lt;position of child1&gt; in the
         &lt;population&gt;, &lt;position of child2&gt; in the &lt;population&gt;, &lt;ptcross1&gt;)
  Next
End Sub

Sub Crossover(&lt;parentA&gt;, &lt;parentB&gt;, &lt;childA&gt;, &lt;childB&gt;, &lt;ptCrossA&gt;)
  For each &lt;gene&gt; in the &lt;chromosome&gt; of the &lt;parentA&gt;
    If &lt;gene position&gt; is smaller than &lt;ptCrossA&gt; Then
      Copy &lt;parentA gene&gt; in the same position into &lt;childA gene&gt;
      Copy &lt;parentB gene&gt; in the same position into &lt;childB gene&gt;
    Else
      Copy &lt;parentA gene&gt; in the same position into &lt;childB gene&gt;
      Copy &lt;parentB gene&gt; in the same position into &lt;childA gene&gt;
    End If
  Next
End Sub

TWO-DIMENSIONAL CROSSOVER OPERATOR, REAL CODING
Sub GenerateNewPopulation()
  //Cutting points for a two-dimensional chromosome
  Make a &lt;ptCross1&gt; variable that define a first cutting point of the
  &lt;individual chromosome&gt;
  Make a &lt;ptCross2&gt; variable that define a second cutting point of the
  &lt;individual chromosome&gt;
  For each &lt;reproduction operation&gt; in the &lt;population&gt;
    Select randomly a first parent &lt;parent1&gt; in the &lt;population&gt;
    Select randomly a second parent &lt;parent2&gt; in the &lt;population&gt;
    If &lt;parent2&gt; is equal to &lt;parent1&gt; Then
      Select randomly another &lt;parent2&gt;
    End If
    //Combine parents genes to create a new &lt;individual&gt;
    //This Function can be called more than one time
    Call Crossover(&lt;parent1&gt;, &lt;parent2&gt;, &lt;position of child1&gt; in the
         &lt;population&gt;, &lt;position of child2&gt; in the &lt;population&gt;, &lt;ptcross1&gt;,
         &lt;ptcross2&gt;)
  Next
End Sub

Sub Crossover(&lt;parentA&gt;, &lt;parentB&gt;, &lt;childA&gt;, &lt;childB&gt;, &lt;ptCrossA&gt;, &lt;ptCrossB&gt;)
  //Two-dimensional crossover operator
  For each &lt;gene&gt; in the matrix rows of the &lt;parentA&gt;
    For each &lt;gene&gt; in the matrix columns of the &lt;parentA&gt;
      If &lt;gene row position&gt; is smaller than &lt;ptCrossA&gt; Then
        If &lt;gene column position&gt; is smaller than &lt;ptCrossB&gt; Then
          Copy &lt;parentA gene&gt; in the same position into &lt;childA gene&gt;
          Copy &lt;parentB gene&gt; in the same position into &lt;childB gene&gt;
        Else
          Copy &lt;parentA gene&gt; in the same position into &lt;childB gene&gt;
          Copy &lt;parentB gene&gt; in the same position into &lt;childA gene&gt;
        End If
      Else
        If &lt;gene column position&gt; is smaller than &lt;ptCrossB&gt; Then
          Copy &lt;parentA gene&gt; in the same position into &lt;childB gene&gt;
          Copy &lt;parentB gene&gt; in the same position into &lt;childA gene&gt;
        Else
          Copy &lt;parentA gene&gt; in the same position into &lt;childA gene&gt;
          Copy &lt;parentB gene&gt; in the same position into &lt;childB gene&gt;
        End If
      End If
    Next
  Next
End Sub</pre>
<p>MUTATION</p>
<p>L’operatore delle mutazioni genetiche casuali è molto importante in quanto è la seconda causa di miglioramento delle performance di una popolazione di individui dopo la ricombinazione genetica realizzata attraverso il crossover. In certi casi, una piccola mutazione relativa ad un singolo gene può essere più efficace rispetto alla ricombinazione dei geni di due buoni genitori e per questo è un operatore che va inserito all’interno della procedura in bassa percentuale in modo da non essere controproducente.</p>
<p>Nei capitoli dedicati ai casi studio, vedremo come implementare questo operatore in modo più efficiente in modo da effettuare contemporaneamente una ricerca della soluzione migliore sia nell’intero dominio delle soluzioni che nel più circoscritto insieme delle soluzioni migliori.</p>
<pre>Sub Mutations()
  For each &lt;mutation&gt; in the &lt;individuals&gt; of the &lt;population&gt;
    Select randomly an &lt;individual&gt; in the &lt;population&gt; excluding &lt;numElite&gt;
    best individuals
    Select randomly a &lt;gene&gt; in the &lt;individual chromosome&gt;
    //It depends on the coding strategy
    Generate randomly a &lt;new gene&gt; value in the solutions domain
    Substitute the &lt;new gene&gt; value with the old &lt;gene&gt; value
  Next
End Sub</pre>
<p>TUNING PROBLEMS</p>
<p>Ogni singolo problema approcciato con l’ausilio di un algoritmo genetico richiede una specifica fase di messa a punto della procedura di ottimizzazione. Non è possibile definire delle linee guida generali per migliorare l’efficienza dell’algoritmo ma volta per volta è necessario affinare da sé la definizione del problema da risolvere, scegliere accuratamente la strategia di codifica, il dominio delle soluzioni e l’utilizzo bilanciato degli operatori principali. Per chiarire meglio l’importanza di questa fase, nei successivi capitoli dedicati alla sperimentazione attraverso dei casi studio verrà dedicato ampio spazio alla descrizione di come si è svolta questa delicata fase.</p>
<p>OTHER FUNCTIONS</p>
<p>Un algoritmo genetico richiede generalmente la costruzione di una serie di funzioni accessorie, come ad esempio le funzioni di stampa, indispensabili per leggere e analizzare i risultati della procedura. Però tra queste si intende riportare una funzione necessaria, ovvero l’ordinamento degli individui di una popolazione sulla base delle prestazioni valutate.</p>
<p>Il metodo più semplice per ordinare gli individui consiste nel prendere a riferimento il vettore delle fitness e, partendo dal primo valore, confrontarlo con il suo immediato vicino. Se maggiore di esso li si scambia di posizione nel vettore altrimenti si procede al prossimo valore. Si procede al contrario invece qualora si preferisca ordinare in ordine decrescente i valori, come tra l’altro è consuetudine fare in questo tipo di algoritmi (l’individuo migliore ha sempre fitness più bassa). Di seguito si riporta lo pseudocodice.</p>
<pre>Sub SortPopulation()
  //Numerical sorting in descending order
  For each &lt;individual&gt; in the &lt;population&gt;
    If the &lt;fitness of individual&gt; is smaller than the &lt;fitness of next
       individual&gt; Then
      Switch the &lt;position of evaluated individuals&gt; in the &lt;population&gt;
    Else
      Nothing
    End If
  Next
End Sub</pre>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/albertopugnale.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/albertopugnale.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/albertopugnale.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/albertopugnale.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/albertopugnale.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/albertopugnale.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/albertopugnale.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/albertopugnale.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/albertopugnale.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/albertopugnale.wordpress.com/131/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=albertopugnale.wordpress.com&blog=863692&post=131&subd=albertopugnale&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://albertopugnale.wordpress.com/2009/07/13/genetic-algorithms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19bd725288a454bf0ef1c7bd509150ca?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">albertopugnale</media:title>
		</media:content>
	</item>
		<item>
		<title>Grace Hopper e Grasshopper, una strana coincidenza (La storia insegna)</title>
		<link>http://albertopugnale.wordpress.com/2009/06/27/grace-hopper-e-grasshopper-una-strana-coincidenza-la-storia-insegna/</link>
		<comments>http://albertopugnale.wordpress.com/2009/06/27/grace-hopper-e-grasshopper-una-strana-coincidenza-la-storia-insegna/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 13:24:59 +0000</pubDate>
		<dc:creator>albertopugnale</dc:creator>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://albertopugnale.wordpress.com/?p=129</guid>
		<description><![CDATA[Forse ci si ricorderà della Hopper principalmente per il suo contributo al bug del millennio, dovuto alla difficoltà dei programmi di accettare il passaggio dal 1999 al 2000, con la data di sole due cifre, piuttosto che il ritorno al 1900. Però in questo caso vorrei citare invece alcuni passaggi tratti da Paul. E. Ceruzzi, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=albertopugnale.wordpress.com&blog=863692&post=129&subd=albertopugnale&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:left;">Forse ci si ricorderà della Hopper principalmente per il suo contributo al bug del millennio, dovuto alla difficoltà dei programmi di accettare il passaggio dal 1999 al 2000, con la data di sole due cifre, piuttosto che il ritorno al 1900. Però in questo caso vorrei citare invece alcuni passaggi tratti da Paul. E. Ceruzzi, “Storia dell’informatica” che credo diano uno stimolo al dibattito sull’utilizzo di strumenti come GrassHopper al posto dei tradizionali linguaggi interpretati come Rhinoscript. Che sia una strana coincidenza o no l’assonanza tra il nome della Hopper e la nostra “cavalletta” di Rhino la storia insegna…</p>
<p style="text-align:left;">Un programmatore, Scott Kim, ha detto che “non c’è una differenza fondamentale fra programmare un computer e utilizzarlo”. Per lui si tratta di strati levigati e continui, dal microcodice incorporato nel firmware fino ai comandi di menu di un ATM, e il suo lavoro si colloca da qualche parte tra questi strati. (p.101)</p>
<p style="text-align:left;">Se queste sequenze venivano perforate su pacchi di schede, si poteva preparare un programma selezionando i pacchi opportuni, scrivendo e perforando su schede codici di collegamento e raggruppando i risultati in un nuovo pacco di schede. Questa attività venne chiamata “compilazione”. […] Grace Hopper svolse un ruolo cruciale nel trasferire quel concetto dal laboratorio di Howard Aiken ad Harvard al mondo commerciale. […] Per Hopper, un “compilatore” era “una routine generatrice di programmi, che produceva un programma specifico per un problema particolare” e chiamava “Programmazione Automatica” l’insieme delle attività legate all’utilizzo dei compilatori.</p>
<p style="text-align:left;">[…] <strong>I fautori della Programmazione Automatica si proponevano di sviluppare per il software quello che Henry Ford aveva concepito per la produzione delle automobili, un sistema basato su parti intercambiabili. Ma proprio perché il sistema di Ford funzionò al meglio quando venne impostato per produrre un solo modello di automobile, questi primi sistemi erano altrettanto rigidi, tentavano di standardizzare prematuramente e a un livello di astrazione sbagliato. Fa fu soltanto quando provarono a farlo che se ne resero conto.</strong></p>
<p style="text-align:left;">Vedi Wilkes, Wheeler e Gill “The preparation of Programs fora n Electronic Digital Computer”, 26-37 e Martin Campbell-Kelly “Programming the EDSAC: Early Programming Activity at the University of Cambridge”, Annals of the History of Computing 2, 1980, 7-36.</p>
<p style="text-align:left;">Il successo iniziale di FORTRAN illustra con quale prontezza gli utenti accettarono un sistema che nascondeva I dettagli dei meccanismi interni della macchina, lasciandoli liberi di concentrarsi sulla risoluzione dei loro problemi e non di quelli della macchina. Nello stesso tempo, <strong>il fatto che si continui a usarlo ben addentro agli anni Novanta, in un’epoca nella quale sono disponibili linguaggi più nuovi, che nascondono molti altri strati di complessità, rivela i limiti di questa filosofia.</strong> Il linguaggio C, sviluppato presso i Bell Labs e uno dei più diffusi dopo il 1980, consente, come il FROTRAN, di accedere a funzionalità di basso libello quando si desidera farlo. I linguaggi per computer che hanno avuto successo e sono durati a lungo, ben pochi, sembrano avere in comune la caratteristica di nascondere ai programmatori alcuni dei meccanismi interni del computer, ma non tutti. (p.113)</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/albertopugnale.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/albertopugnale.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/albertopugnale.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/albertopugnale.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/albertopugnale.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/albertopugnale.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/albertopugnale.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/albertopugnale.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/albertopugnale.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/albertopugnale.wordpress.com/129/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=albertopugnale.wordpress.com&blog=863692&post=129&subd=albertopugnale&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://albertopugnale.wordpress.com/2009/06/27/grace-hopper-e-grasshopper-una-strana-coincidenza-la-storia-insegna/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19bd725288a454bf0ef1c7bd509150ca?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">albertopugnale</media:title>
		</media:content>
	</item>
		<item>
		<title>Copertura leggera per una piccola corte interna</title>
		<link>http://albertopugnale.wordpress.com/2009/06/15/copertura-leggera-per-una-piccola-corte-interna/</link>
		<comments>http://albertopugnale.wordpress.com/2009/06/15/copertura-leggera-per-una-piccola-corte-interna/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 15:10:52 +0000</pubDate>
		<dc:creator>albertopugnale</dc:creator>
				<category><![CDATA[Alberto Pugnale]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Mathematics, Geometry and Topology]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://albertopugnale.wordpress.com/?p=123</guid>
		<description><![CDATA[Di seguito riporto alcune immagini di un progetto proposto per la realizzazione di una copertura leggera. Si tratta di una corte interna nel ricetto di un villaggio di provincia piemontese, nel quale l&#8217;interesse principale stava nella costruzione di una copertura a rapida esecuzione, che richieda minimi interventi sull&#8217;esistente (si sfruttano i pilastri esistenti dei ballatoi e [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=albertopugnale.wordpress.com&blog=863692&post=123&subd=albertopugnale&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Di seguito riporto alcune immagini di un progetto proposto per la realizzazione di una copertura leggera. Si tratta di una corte interna nel ricetto di un villaggio di provincia piemontese, nel quale l&#8217;interesse principale stava nella costruzione di una copertura a rapida esecuzione, che richieda minimi interventi sull&#8217;esistente (si sfruttano i pilastri esistenti dei ballatoi e non si intaccano le coperture esistenti). La proposta prevede una serie di travi curve che sostengono dei cuscini di ETFE al fine di ottenere un effetto di cielo nuvoloso. Solitamente questo tipo di materiale viene impiegato nelle grandi luci (al fine di minimizzare la scarsa resa estetica sulle piccole dimensioni) o imitando le classiche bolle di sapone, come nel WaterCube di Pechino. Attraverso l&#8217;uso di questo materiale e questa configurazione spaziale, il progetto si presta ad essere mezzo per una ricerca sulla forma sviluppata delle membrane dei cuscini. Infatti ancora oggi è una lavorazione che viene effettuata senza procedure di ottimizzazione e, come per la realizzazione di vetri a doppia curvatura, diventa molto onerosa.</p>
<p>La proposta di coprire interamente la corte è stata abbandonata al fine di lasciare un&#8217;elevata visibilità del cielo ed è attualmente in studio una nuova proposta per una copertura parziale in corrispondenza del ballatoio di attraversamento. Si accettano consigli!</p>
<p><img class="alignnone size-full wp-image-122" title="TimeOut1" src="http://albertopugnale.files.wordpress.com/2009/06/timeout1.jpg?w=430&#038;h=784" alt="TimeOut1" width="430" height="784" /></p>
<p>Foto del plastico: la corte esistente con la nuova copertura leggera in acciaio ed ETFE.</p>
<p><img class="alignnone size-full wp-image-125" title="TimeOut3" src="http://albertopugnale.files.wordpress.com/2009/06/timeout31.jpg?w=430&#038;h=1137" alt="TimeOut3" width="430" height="1137" /></p>
<p>Viste del modello virtuale: la nuova copertura sfrutta le caratteristiche dell&#8217;ETFE per formare un &#8216;cielo nuvoloso&#8217;.</p>
<p><img class="alignnone size-full wp-image-126" title="TimeOut4" src="http://albertopugnale.files.wordpress.com/2009/06/timeout4.jpg?w=430&#038;h=364" alt="TimeOut4" width="430" height="364" /></p>
<p>Sezioni sulla corte esistente con la nuova copertura leggera.</p>
<p><img class="alignnone size-full wp-image-127" title="TimeOut2" src="http://albertopugnale.files.wordpress.com/2009/06/timeout2.jpg?w=430&#038;h=283" alt="TimeOut2" width="430" height="283" /></p>
<p>Schema della nuova struttura con evidenziati i punti d&#8217;appoggio.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/albertopugnale.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/albertopugnale.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/albertopugnale.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/albertopugnale.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/albertopugnale.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/albertopugnale.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/albertopugnale.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/albertopugnale.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/albertopugnale.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/albertopugnale.wordpress.com/123/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=albertopugnale.wordpress.com&blog=863692&post=123&subd=albertopugnale&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://albertopugnale.wordpress.com/2009/06/15/copertura-leggera-per-una-piccola-corte-interna/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19bd725288a454bf0ef1c7bd509150ca?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">albertopugnale</media:title>
		</media:content>

		<media:content url="http://albertopugnale.files.wordpress.com/2009/06/timeout1.jpg" medium="image">
			<media:title type="html">TimeOut1</media:title>
		</media:content>

		<media:content url="http://albertopugnale.files.wordpress.com/2009/06/timeout31.jpg" medium="image">
			<media:title type="html">TimeOut3</media:title>
		</media:content>

		<media:content url="http://albertopugnale.files.wordpress.com/2009/06/timeout4.jpg" medium="image">
			<media:title type="html">TimeOut4</media:title>
		</media:content>

		<media:content url="http://albertopugnale.files.wordpress.com/2009/06/timeout2.jpg" medium="image">
			<media:title type="html">TimeOut2</media:title>
		</media:content>
	</item>
		<item>
		<title>The church of Longuelo designed by Pino Pizzigoni. An unknown example of outstanding structure</title>
		<link>http://albertopugnale.wordpress.com/2009/06/15/the-church-of-longuelo-designed-by-pino-pizzigoni-an-unknown-example-of-outstanding-structure/</link>
		<comments>http://albertopugnale.wordpress.com/2009/06/15/the-church-of-longuelo-designed-by-pino-pizzigoni-an-unknown-example-of-outstanding-structure/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 14:11:30 +0000</pubDate>
		<dc:creator>albertopugnale</dc:creator>
				<category><![CDATA[Alberto Pugnale]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Mathematics, Geometry and Topology]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://albertopugnale.wordpress.com/?p=112</guid>
		<description><![CDATA[Carlo DEREGIBUS, Alberto PUGNALE
ABSTRACT
This paper presents a critical study of the church of Longuelo, Italy, designed in 1966 by Giuseppe (Pino) Pizzigoni (1901–1967), an Italian architect who lived and worked in the city of Bergamo. He began his studies on shell structures in the Fifties and many of his buildings show outstanding skills in conceiving [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=albertopugnale.wordpress.com&blog=863692&post=112&subd=albertopugnale&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Carlo DEREGIBUS, Alberto PUGNALE</p>
<p>ABSTRACT</p>
<p>This paper presents a critical study of the church of Longuelo, Italy, designed in 1966 by Giuseppe (Pino) Pizzigoni (1901–1967), an Italian architect who lived and worked in the city of Bergamo. He began his studies on shell structures in the Fifties and many of his buildings show outstanding skills in conceiving and handling complex structures. The church is one of his most interesting works: it is divided in four identical free parts, each composed by four shells joined by a fifth one, supported by twenty one bars which realize an statically-determinate spatial frame resulting in an outstanding inner space.</p>
<p>All during the XX Century, several Italian architects devoted their efforts in finding a synergy between structure and formal character, economically reasonable while rich of new architectural opportunities. Among the most notable there are personalities like Pier Luigi Nervi, Luigi Moretti and Sergio Musmeci, but also a lot of almost unheard-of architects, whose works are of utter interest. Here a very singular building of one of these designers, namely Pino Pizzigoni, is presented: the church of Longuelo. The main information related to this building are to be found directly in his archive, located in the public library of Bergamo “Angelo Mai [9], from his own sketches and written records, which often are all but clear and marked by consistency.<br />
The second section describes the multifaceted personality of Pizzigoni, with a special attention to the last years of his life. In the third one we present an overview of the church to understand its genesis and evolution. The fourth section elaborates on the structural behaviour of the church: as the description by the architect are often confused, different suggestions and considerations about built structure are pieced together. Finally, before the conclusion section, the fifth one looks at the real church, its actual state and its aging.</p>
<p><img class="alignnone size-full wp-image-114" title="Pizzigoni chiesa1" src="http://albertopugnale.files.wordpress.com/2009/06/pizzigoni1.jpg?w=430&#038;h=286" alt="Pizzigoni chiesa1" width="430" height="286" /></p>
<p>Picture of the Church of Longuelo, front view.</p>
<p><img title="Pizzigoni chiesa2" src="http://albertopugnale.files.wordpress.com/2009/06/pizzigoni4.jpg?w=430&#038;h=286" alt="Pizzigoni chiesa2" width="430" height="286" /></p>
<p>Picture of the Church of Longuelo, back view.</p>
<p><img title="Pizzigoni2" src="http://albertopugnale.files.wordpress.com/2009/06/pizzigoni2.jpg?w=430&#038;h=647" alt="Pizzigoni2" width="430" height="647" /></p>
<p>Picture of the Church of Longuelo, lateral view 1.</p>
<p><img class="alignnone size-full wp-image-117" title="Pizzigoni3" src="http://albertopugnale.files.wordpress.com/2009/06/pizzigoni3.jpg?w=430&#038;h=647" alt="Pizzigoni3" width="430" height="647" /></p>
<p>Picture of the Church of Longuelo, lateral view 2.</p>
<p><img class="alignnone size-full wp-image-118" title="Pizzigoni6" src="http://albertopugnale.files.wordpress.com/2009/06/pizzigoni6.jpg?w=430&#038;h=258" alt="Pizzigoni6" width="430" height="258" /></p>
<p>Another experimentation with a spatial structure, Zandobbio.</p>
<p><img class="alignnone size-full wp-image-119" title="Pizzigoni5" src="http://albertopugnale.files.wordpress.com/2009/06/pizzigoni5.jpg?w=430&#038;h=224" alt="Pizzigoni5" width="430" height="224" /></p>
<p>Other experimentations.</p>
<p>This contribute paper will be published on the &#8220;Proceedings of the International Association for Shell and Spatial Structures (IASS) Symposium 2009&#8243;, Valencia. Evolution and Trends in Design, Analysis and Construction of Shell and Spatial Structures, 28 September – 2 October 2009, Universidad Politecnica de Valencia, Spain.<span style="line-height:115%;font-family:&quot;font-size:11pt;"></span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/albertopugnale.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/albertopugnale.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/albertopugnale.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/albertopugnale.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/albertopugnale.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/albertopugnale.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/albertopugnale.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/albertopugnale.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/albertopugnale.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/albertopugnale.wordpress.com/112/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=albertopugnale.wordpress.com&blog=863692&post=112&subd=albertopugnale&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://albertopugnale.wordpress.com/2009/06/15/the-church-of-longuelo-designed-by-pino-pizzigoni-an-unknown-example-of-outstanding-structure/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19bd725288a454bf0ef1c7bd509150ca?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">albertopugnale</media:title>
		</media:content>

		<media:content url="http://albertopugnale.files.wordpress.com/2009/06/pizzigoni1.jpg" medium="image">
			<media:title type="html">Pizzigoni chiesa1</media:title>
		</media:content>

		<media:content url="http://albertopugnale.files.wordpress.com/2009/06/pizzigoni4.jpg" medium="image">
			<media:title type="html">Pizzigoni chiesa2</media:title>
		</media:content>

		<media:content url="http://albertopugnale.files.wordpress.com/2009/06/pizzigoni2.jpg" medium="image">
			<media:title type="html">Pizzigoni2</media:title>
		</media:content>

		<media:content url="http://albertopugnale.files.wordpress.com/2009/06/pizzigoni3.jpg" medium="image">
			<media:title type="html">Pizzigoni3</media:title>
		</media:content>

		<media:content url="http://albertopugnale.files.wordpress.com/2009/06/pizzigoni6.jpg" medium="image">
			<media:title type="html">Pizzigoni6</media:title>
		</media:content>

		<media:content url="http://albertopugnale.files.wordpress.com/2009/06/pizzigoni5.jpg" medium="image">
			<media:title type="html">Pizzigoni5</media:title>
		</media:content>
	</item>
		<item>
		<title>A conversation with Salvatore D&#8217;Agostino</title>
		<link>http://albertopugnale.wordpress.com/2008/12/03/a-conversation-with-salvatore-dagostino/</link>
		<comments>http://albertopugnale.wordpress.com/2008/12/03/a-conversation-with-salvatore-dagostino/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 12:03:38 +0000</pubDate>
		<dc:creator>albertopugnale</dc:creator>
				<category><![CDATA[Architects, Engineers and Artists]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://albertopugnale.wordpress.com/?p=108</guid>
		<description><![CDATA[Published on Wilfing Architettura:
http://wilfingarchitettura.blogspot.com/2008/12/0019-mondoblog-prog-engineering.html
Salvatore, thanks for the interesting interview!
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=albertopugnale.wordpress.com&blog=863692&post=108&subd=albertopugnale&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Published on Wilfing Architettura:</p>
<p><a href="http://wilfingarchitettura.blogspot.com/2008/12/0019-mondoblog-prog-engineering.html" target="_blank">http://wilfingarchitettura.blogspot.com/2008/12/0019-mondoblog-prog-engineering.html</a></p>
<p>Salvatore, thanks for the interesting interview!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/albertopugnale.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/albertopugnale.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/albertopugnale.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/albertopugnale.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/albertopugnale.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/albertopugnale.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/albertopugnale.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/albertopugnale.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/albertopugnale.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/albertopugnale.wordpress.com/108/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=albertopugnale.wordpress.com&blog=863692&post=108&subd=albertopugnale&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://albertopugnale.wordpress.com/2008/12/03/a-conversation-with-salvatore-dagostino/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19bd725288a454bf0ef1c7bd509150ca?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">albertopugnale</media:title>
		</media:content>
	</item>
		<item>
		<title>Rhinoceros and Ansys</title>
		<link>http://albertopugnale.wordpress.com/2008/11/06/rhinoceros-ansys/</link>
		<comments>http://albertopugnale.wordpress.com/2008/11/06/rhinoceros-ansys/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 11:34:33 +0000</pubDate>
		<dc:creator>albertopugnale</dc:creator>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Mathematics, Geometry and Topology]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://albertopugnale.wordpress.com/?p=103</guid>
		<description><![CDATA[With reference to this article published on IAACBlog: http://www.iaacblog.com/scripting/?p=572 I replied to this author request: “I was forced to use the workbench environment because i was unable to acheive the same contact results with ansys classical version, ultimately ending the potential to have a fully automated program. I am still working on this, If anyone [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=albertopugnale.wordpress.com&blog=863692&post=103&subd=albertopugnale&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-family:&quot;" lang="EN-GB"><span style="font-size:small;">With reference to this article published on IAACBlog: </span><a href="http://www.iaacblog.com/scripting/?p=572"><span style="font-size:small;color:#800080;">http://www.iaacblog.com/scripting/?p=572</span></a><span style="font-size:small;"> I replied to this author request: “I was forced to use the workbench environment because i was unable to acheive the same contact results with ansys classical version, ultimately ending the potential to have a fully automated program. I am still working on this, If anyone can help me out to provide a source of documentation for ansys workbench that would be greatly appreciated” some months ago, but my comment is not published yet (why?). For this reason, today I reply directly on my blog.</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-family:&quot;" lang="EN-GB"><span style="font-size:small;">First of all, we have to transform a NURBS surface<span>  </span>in a MESH object in this way:</span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">‘The number of elements in U and V direction</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">elemsNumU = 10</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">elemsNumV = 10</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">nodesNumU = elemsNumU + 1</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">nodesNumV = elemsNumV + 1</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">ReDim Nodes(nodesNumU * nodesNumV &#8211; 1)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"> </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Dim domU, domV, stepSizeU, stepSizeV </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"> </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Rhino.AddLayer &#8220;Mesh&#8221;, </span><span lang="EN-GB"><span><span style="font-size:small;font-family:Calibri;"> </span></span></span><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">RGB(255, 0, 0), 0 </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Rhino.CurrentLayer(&#8220;Mesh&#8221;)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"> </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">&#8216;Get the domain of the surface</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">domU = Rhino.SurfaceDomain(surface(i), 0)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">domV = Rhino.SurfaceDomain(surface(i), 1)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"> </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">&#8216;If Not IsArray(domU) Or Not IsArray(domV) Then Exit Sub</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">stepSizeU = (domU(1) &#8211; domU(0)) / elemsNumU</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">stepSizeV = (domV(1) &#8211; domV(0)) / elemsNumV</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"><span>   </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">For j = 0 To elemsNumV</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">&#8216;Set the y coordinate</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">coord(1) = domV(0) + stepSizeV * j</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">For k = 0 To elemsNumU</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">&#8216;Set the x coordinate</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">coord(0) = domU(0) + stepSizeU * k<span>      </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">&#8216;Generates the z coordinate and stores the points in the A array</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">nodes(nodesNumU*j+k) = Rhino.EvaluateSurface(surface(i), coord)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Next</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Next</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"><span>    </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">ReDim topology(elemsNumU * elemsNumV &#8211; 1)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"> </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">For j=0 To elemsNumV-1</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">For k=0 To elemsNumU-1</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">topology(elemsNumU*j+k) = Array((elemsNumU+1)*(j+0)+(k+0), (elemsNumU+1)*(j+0)+(k+1), (elemsNumU+1)*(j+1)+(k+1), (elemsNumU+1)*(j+1)+(k+0)) </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Next</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Next</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"><span> </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Rhino.AddMesh nodes, topology </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"> </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-family:&quot;" lang="EN-GB"><span style="font-size:small;">Secondly, we have to translate our Rhino-MESH into a valid input file for Ansys:</span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">&#8216;The input file for the FEM analysis</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;">Dim fsObject, fp, node</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;"><span>    </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">outPath = &#8220;c:\RhinoTemp\InputAnsys.txt&#8221; </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Set fsObject = CreateObject(&#8220;Scripting.FileSystemObject&#8221;)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Set fp = fsObject.CreateTextFile(outPath, True)<span>  </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;/PREP7&#8243;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;">fp.Writeline &#8220;!* &#8230;Static analysis&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;">fp.Writeline &#8220;ANTYPE,STATIC&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;ET,1,SHELL63,,1&#8243;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;R,1,0.3 !* &#8230;Shell thickness&#8221;<span>       </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;MP,EX,1,3E+7&#8243; ‘Units: m and KN</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;MP,NUXY,1,0.15&#8243;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;!* &#8230;&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;TYPE,1&#8243;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;MAT,1&#8243;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;">fp.Writeline &#8220;REAL,1&#8243;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;"><span>  </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">&#8216;Mesh nodes</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;!*&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;!* &#8230;Nodes&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"><span>   </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">For j = 0 To nodesNumV &#8211; 1 </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">For k = 0 To nodesNumU &#8211; 1</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">node = nodes(nodesNumU*j+k)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;N,&#8221; &amp; nodesNumU*j+k+1 &amp; &#8220;,&#8221; &amp; node(0) &amp; &#8220;,&#8221; &amp; node(1) &amp; &#8220;,&#8221; &amp; node(2)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Next</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;">Next</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;"><span>   </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">&#8216;Shell elements (only geometry)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;!*&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;">fp.Writeline &#8220;!* &#8230;Shell elements&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;"><span>  </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">For j=0 To elemsNumV-1</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">For k=1 To elemsNumU</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">&#8216;Ansys Shell 63 elements</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">nodes(nodesNumU*j+k) = Array((nodesNumU)*(j+0)+(k+0), (nodesNumU)*(j+0)+(k+1), (nodesNumU)*(j+1)+(k+1), (nodesNumU)*(j+1)+(k+0))</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;E,&#8221; &amp; nodes(nodesNumU*j+k)(0) &amp; &#8220;,&#8221; &amp; nodes(nodesNumU*j+k)(1) &amp; &#8220;,&#8221; &amp; nodes(nodesNumU*j+k)(2) &amp; &#8220;,&#8221; &amp; nodes(nodesNumU*j+k)(3)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Next</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Next</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"> </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;!* &#8230;&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;FINISH&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;">fp.Writeline &#8220;/SOLU&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;!* &#8230;Constrains&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"><span>    </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">‘Single Node constrain</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;D,&#8221; &amp; CStr(1) &amp; &#8220;,UX&#8221; ‘&#8212; 1 is the number of the node to constrain</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;D,&#8221; &amp; CStr(1) &amp; &#8220;,UY&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;D,&#8221; &amp; CStr(1) &amp; &#8220;,UZ&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"><span>    </span><span>    </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">‘External constrains</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">For m = 0 To elemsNumU</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;D,&#8221; &amp; CStr(m+1) &amp; &#8220;,UX&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;D,&#8221; &amp; CStr(m+1) &amp; &#8220;,UY&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;D,&#8221; &amp; CStr(m+1) &amp; &#8220;,UZ&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Next</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"><span>    </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">For m = 0 To nodesNumV-2</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;D,&#8221; &amp; CStr(m*nodesNumU)+1 &amp; &#8220;,UX&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;D,&#8221; &amp; CStr(m*nodesNumU)+1 &amp; &#8220;,UY&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;D,&#8221; &amp; CStr(m*nodesNumU)+1 &amp; &#8220;,UZ&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Next</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"> </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;">fp.Writeline &#8220;!* &#8230;Forces&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">&#8216;Nodal forces</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">For k=0 To (nodesNumU * nodesNumV -1)</span></p>
<p class="MsoNormal" style="text-indent:35.4pt;line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;F, &#8221; &amp; (k+1) &amp; &#8220;, FZ, 1&#8243;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Next </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"> </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;">&#8216;Gravity ACEL and MPDATA, DENS</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;MPTEMP,,,,,,,,&#8221;<span>  </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;MPTEMP,1,0<span>  </span>&#8220;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;MPDATA,DENS,1,,25&#8243;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;ACEL,0,0,-1,&#8221;<span>  </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"><span>                   </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;SOLVE&#8221; </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;!* &#8230;Postprocessor&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;/POST1&#8243;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">&#8216;fp.Writeline &#8220;PRNSOL, U, X&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">&#8216;fp.Writeline &#8220;PRNSOL, U, Y&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;PRNSOL, U, Z&#8221; ‘Z direction displacements</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.Writeline &#8220;FINISH&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"><span> </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fp.close</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"> </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-family:&quot;" lang="EN-GB"><span style="font-size:small;">Finally, we have to launch the analysis and to read the results (e.g. the maximum displacement). It is better to separate this operation in a private function to recall:</span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;">Dim applicPath, applic, maxDisplacement</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Dim fileExe, fileInput, fileOutput</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"><span>  </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fileExe = &#8220;C:\Programmi\Ansys Inc\v100\ANSYS\bin\intel\ansys100.exe&#8221; ‘Programs for ENG WIN versions </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fileInput = &#8220;c:\RhinoTemp\InputAnsys.txt&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">fileOutput = &#8220;c:\RhinoTemp\OutputAnsys.txt&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">applicPath = fileExe &amp; &#8221; -b -i &#8221; &amp; fileInput &amp; &#8221; -o &#8221; &amp; fileOutput</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"> </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Set applic = CreateObject(&#8220;WScript.Shell&#8221;)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;">applic.exec(applicPath)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"><span>    </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Dim datiOut, out, rigaDati, risultDati, fileOutput, fileCompleto, counter</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"> </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">out = False</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">counter = 1</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Set datiOut = CreateObject(&#8220;Scripting.FileSystemObject&#8221;)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"><span>    </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">&#8216;&#8212; File exists?</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Do Until out = True</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">out = datiOut.FileExists(fileOutput)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Rhino.sleep 1000</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Counter = counter + 1 </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Loop</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"> </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Rhino.Print &#8220;Now the output file exists&#8221; </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Rhino.sleep 1000</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"><span> </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Set out = datiOut.OpenTextFile(fileOutput, 1)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;">risultDati = 0</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;"><span>    </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">&#8216;&#8212; Max displ value exists?</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;">contatore = 1</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;">fileCompleto = 0</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Do Until fileCompleto = 1</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">While Not Out.AtEndOfStream</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">rigaDati = Out.readLine</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">If rigaDati = &#8221; |<span>                            </span>ANSYS RUN COMPLETED<span>                            </span>|&#8221; Then</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 106.2pt;"><span style="font-size:8pt;font-family:&quot;">Rhino.Print &#8220;Analysis complete!&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 106.2pt;"><span style="font-size:8pt;font-family:&quot;">fileCompleto = 1</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">End If</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Wend</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"><span> </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Rhino.sleep 1000</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">counter = counter + 1</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">If contatore = 600 Then</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;">risultDati = 100</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;">Rhino.Print &#8220;Error&#8221;</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Exit Do</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">End If </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Loop</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"><span>    </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">&#8216;&#8212; Read Max displacement<span>        </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Set out = datiOut.OpenTextFile(fileOutput, 1)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Do While Not out.AtEndOfStream</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">rigaDati = out.readLine<span>   </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">If Left(RigaDati, 12)<span>     </span>= &#8221; *** ERROR *&#8221; Then</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">risultDati = 100</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Exit Do</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">ElseIf Left(RigaDati, 12) = &#8221; MAXIMUM ABS&#8221; Then </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;">out.SkipLine &#8216;1</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;">rigaDati = out.readLine</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;">risultDati = Mid(rigaDati, 9, 12)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 70.8pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Exit Do</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 0 35.4pt;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">End If</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">Loop</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"><span>      </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;">‘RESULT</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;">maxDisplacement = risultDati</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;"><span>    </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;"><span>    </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;">Out.Close </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;"><span>    </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">&#8216;Delete the output file</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB">&#8216;Out = DatiOut.DeleteFile(fileOutput, True)</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:&quot;" lang="EN-GB"> </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-family:&quot;" lang="EN-GB"><span style="font-size:small;">That’s an automatic procedure to evaluate the structural performance of a Rhino MESH object with the ANSYS FEM solver.</span></span></p>
<p><span style="font-family:&quot;" lang="EN-GB"><span style="font-size:small;"></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-family:&quot;" lang="EN-GB">Reference:<span style="font-variant:small-caps;"> Pugnale A.</span>,<span style="font-variant:small-caps;"> Sassone M.,</span> <em>Morphogenesis and Structural Optimization of Shell Structures with the Aid of a Genetic Algorithm</em>, in “Journal of the International Association for Shell and Spatial Structures”, Vol. 48, n. 155, Dicembre 2007.</span></p>
<p></span></span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/albertopugnale.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/albertopugnale.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/albertopugnale.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/albertopugnale.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/albertopugnale.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/albertopugnale.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/albertopugnale.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/albertopugnale.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/albertopugnale.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/albertopugnale.wordpress.com/103/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=albertopugnale.wordpress.com&blog=863692&post=103&subd=albertopugnale&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://albertopugnale.wordpress.com/2008/11/06/rhinoceros-ansys/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19bd725288a454bf0ef1c7bd509150ca?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">albertopugnale</media:title>
		</media:content>
	</item>
		<item>
		<title>Proceedings of the IASS-IACM 2008, Ithaca NY</title>
		<link>http://albertopugnale.wordpress.com/2008/10/18/proceedings-of-the-iass-iacm-2008-ithaca-ny/</link>
		<comments>http://albertopugnale.wordpress.com/2008/10/18/proceedings-of-the-iass-iacm-2008-ithaca-ny/#comments</comments>
		<pubDate>Sat, 18 Oct 2008 12:32:38 +0000</pubDate>
		<dc:creator>albertopugnale</dc:creator>
				<category><![CDATA[Architects, Engineers and Artists]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Evolutionary techniques]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Schools and Courses]]></category>

		<guid isPermaLink="false">http://albertopugnale.wordpress.com/?p=101</guid>
		<description><![CDATA[Published at http://hdl.handle.net/1813/11527 the Proceedings of the 6th IASS IACM Symposium.
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=albertopugnale.wordpress.com&blog=863692&post=101&subd=albertopugnale&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Published at <a title="Proceedings of IASS IACM 2008" href="http://hdl.handle.net/1813/11527" target="_blank">http://hdl.handle.net/1813/11527 </a>the Proceedings of the 6th IASS IACM Symposium.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/albertopugnale.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/albertopugnale.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/albertopugnale.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/albertopugnale.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/albertopugnale.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/albertopugnale.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/albertopugnale.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/albertopugnale.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/albertopugnale.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/albertopugnale.wordpress.com/101/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=albertopugnale.wordpress.com&blog=863692&post=101&subd=albertopugnale&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://albertopugnale.wordpress.com/2008/10/18/proceedings-of-the-iass-iacm-2008-ithaca-ny/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19bd725288a454bf0ef1c7bd509150ca?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">albertopugnale</media:title>
		</media:content>
	</item>
		<item>
		<title>Optimal design of glass grid shells with quadrilateral elements by means of a genetic algorithm</title>
		<link>http://albertopugnale.wordpress.com/2008/09/09/optimal-design-of-glass-grid-shells-with-quadrilateral-elements-by-means-of-a-genetic-algorithm/</link>
		<comments>http://albertopugnale.wordpress.com/2008/09/09/optimal-design-of-glass-grid-shells-with-quadrilateral-elements-by-means-of-a-genetic-algorithm/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 13:23:42 +0000</pubDate>
		<dc:creator>albertopugnale</dc:creator>
				<category><![CDATA[Architects, Engineers and Artists]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Evolutionary techniques]]></category>
		<category><![CDATA[Mathematics, Geometry and Topology]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://albertopugnale.wordpress.com/?p=97</guid>
		<description><![CDATA[Presented at the IASS-IACM 2008, Ithaca NY, USA
Mario SASSONE, Alberto PUGNALE
Abstract
In this paper a constructional problem related to grid-shells design is approached as an optimisation problem and an evolutionary solution technique is proposed. The construction of glass grid-shells, when only four sides cladding elements are used, requires to check the planarity of each element, it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=albertopugnale.wordpress.com&blog=863692&post=97&subd=albertopugnale&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:left;">Presented at the IASS-IACM 2008, Ithaca NY, USA</p>
<p style="text-align:left;">Mario SASSONE, Alberto PUGNALE</p>
<p style="text-align:left;"><strong>Abstract<br />
</strong>In this paper a constructional problem related to grid-shells design is approached as an optimisation problem and an evolutionary solution technique is proposed. The construction of glass grid-shells, when only four sides cladding elements are used, requires to check the planarity of each element, it means that the four corner points have to belong to the same plane. This requirement can be satisfied by generating the grid surface in specific ways (Schlaich and Bergermann), but when the design involves truly free form shapes, a procedure of optimisation able to reduce the non planarity of each element can be applied. The proposed one is based on the use of a genetic algorithm and has been applied to a benchmark and to a real case, in order to evaluate the efficiency of the procedure and the goodness of the solution.</p>
<p style="text-align:left;"><a href="http://albertopugnale.files.wordpress.com/2008/09/papplanarita.jpg"><img class="alignleft size-full wp-image-98" title="papplanarita" src="http://albertopugnale.files.wordpress.com/2008/09/papplanarita.jpg?w=430&#038;h=650" alt="" width="430" height="650" /></a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/albertopugnale.wordpress.com/97/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/albertopugnale.wordpress.com/97/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/albertopugnale.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/albertopugnale.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/albertopugnale.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/albertopugnale.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/albertopugnale.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/albertopugnale.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/albertopugnale.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/albertopugnale.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/albertopugnale.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/albertopugnale.wordpress.com/97/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=albertopugnale.wordpress.com&blog=863692&post=97&subd=albertopugnale&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://albertopugnale.wordpress.com/2008/09/09/optimal-design-of-glass-grid-shells-with-quadrilateral-elements-by-means-of-a-genetic-algorithm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19bd725288a454bf0ef1c7bd509150ca?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">albertopugnale</media:title>
		</media:content>

		<media:content url="http://albertopugnale.files.wordpress.com/2008/09/papplanarita.jpg" medium="image">
			<media:title type="html">papplanarita</media:title>
		</media:content>
	</item>
		<item>
		<title>On the interaction between architecture and engineering: the acoustic optimization of a reinforced concrete shell</title>
		<link>http://albertopugnale.wordpress.com/2008/09/09/on-the-interaction-between-architecture-and-engineering-the-acoustic-optimization-of-a-reinforced-concrete-shell/</link>
		<comments>http://albertopugnale.wordpress.com/2008/09/09/on-the-interaction-between-architecture-and-engineering-the-acoustic-optimization-of-a-reinforced-concrete-shell/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 13:18:14 +0000</pubDate>
		<dc:creator>albertopugnale</dc:creator>
				<category><![CDATA[Architects, Engineers and Artists]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Evolutionary techniques]]></category>
		<category><![CDATA[Mathematics, Geometry and Topology]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://albertopugnale.wordpress.com/?p=91</guid>
		<description><![CDATA[Presented at the IASS-IACM 2008, Ithaca NY, USA
Mario SASSONE, Tomàs MENDEZ, Alberto PUGNALE
Abstract
In this paper a computational morphogenesis process is applied to the design and the optimization of the shell roof of a large music hall. The architectural concept is based on the folded plate technique: a set of reinforced concrete plates, connected to each [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=albertopugnale.wordpress.com&blog=863692&post=91&subd=albertopugnale&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:left;">Presented at the IASS-IACM 2008, Ithaca NY, USA</p>
<p style="text-align:left;">Mario SASSONE, Tomàs MENDEZ, Alberto PUGNALE</p>
<p style="text-align:left;"><strong>Abstract</strong><br />
In this paper a computational morphogenesis process is applied to the design and the optimization of the shell roof of a large music hall. The architectural concept is based on the folded plate technique: a set of reinforced concrete plates, connected to each other on the edges, forms the global shape of the roof. The dimensions of each plate are different, so that the structure is not regular; moreover each plate is not plane but slightly curved to form hypars. Starting from the geometric concept of the roof, a process of optimization and form finding has been applied, in order to obtain the best acoustic performance, in terms of distribution of the acoustic pressure level in the hall. The folded plate surface has been described mathematically by using a NURBS representation and the control point positions has been assumed as the design variables. The acoustic performance has been evaluated by means of an algorithm able to calculate the acoustic pressure level in all the points of the hall, considering the reflection of the roof. The uniformity of acoustic pressure level in all the points of the hall has been assumed as the target of the optimization process. A genetic algorithm, i.e. an evolutionary iterative population-based scheme, has been adopted in the optimization procedure. The evolution of the shape towards the optimal solution is controlled interactively by the designer, in order to avoid the convergence to unexpected configurations.</p>
<p style="text-align:left;"><a href="http://albertopugnale.files.wordpress.com/2008/09/papacustica.jpg"><img class="alignleft size-full wp-image-92" title="papacustica" src="http://albertopugnale.files.wordpress.com/2008/09/papacustica.jpg?w=430&#038;h=650" alt="" width="430" height="650" /></a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/albertopugnale.wordpress.com/91/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/albertopugnale.wordpress.com/91/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/albertopugnale.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/albertopugnale.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/albertopugnale.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/albertopugnale.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/albertopugnale.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/albertopugnale.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/albertopugnale.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/albertopugnale.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/albertopugnale.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/albertopugnale.wordpress.com/91/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=albertopugnale.wordpress.com&blog=863692&post=91&subd=albertopugnale&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://albertopugnale.wordpress.com/2008/09/09/on-the-interaction-between-architecture-and-engineering-the-acoustic-optimization-of-a-reinforced-concrete-shell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19bd725288a454bf0ef1c7bd509150ca?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">albertopugnale</media:title>
		</media:content>

		<media:content url="http://albertopugnale.files.wordpress.com/2008/09/papacustica.jpg" medium="image">
			<media:title type="html">papacustica</media:title>
		</media:content>
	</item>
		<item>
		<title>EARLY CUSTOMIZERS, New tools (2)</title>
		<link>http://albertopugnale.wordpress.com/2008/01/11/early-customizers/</link>
		<comments>http://albertopugnale.wordpress.com/2008/01/11/early-customizers/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 12:04:50 +0000</pubDate>
		<dc:creator>albertopugnale</dc:creator>
				<category><![CDATA[Architects, Engineers and Artists]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://albertopugnale.wordpress.com/2008/01/11/early-customizers/</guid>
		<description><![CDATA[
“Graham promoted the creation of a computerized program called Building Optimization Program (BOP), aimed to cut down the construction costs. This program was designed as a diagnostic tool by which architects and engineers could identify the points where constructive costs could be cut down, but, of course, it was accused on its the main priority, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=albertopugnale.wordpress.com&blog=863692&post=89&subd=albertopugnale&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img src="http://albertopugnale.files.wordpress.com/2008/01/som.jpg" alt="Personalizzatori precoci" /></p>
<p align="left">“<strong>Graham promoted the creation of a computerized program called Building Optimization Program (BOP),</strong> aimed to cut down the construction costs. This program was designed as a diagnostic tool by which architects and engineers could identify the points where constructive costs could be cut down, but, of course, it was accused on its the main priority, that was the economy rather than the project.<br />
[…] Also the introduction of Computer-Aided Design and of its possibilities was the result of a collaboration between Graham and Khan. The use of computers by SOM dates back to the early fifties and to the construction of the Academy of Aeronautics. In the following years, with the development of research, computers entered in SOM, as happened in many companies, initially through the administrative sector. In 1963 SOM installed an IBM-1620 that was used for the study of complex structural systems, energy requirements and for financial planning. Khan, Graham and a third partner, Richard Keating, were convinced that computers would have also other applications, thus decided to invest in updating the equipment of SOM. When, in the mid-seventies, were first CAD programs was developed, SOM began to engage programmers and computer experts. In 1980 Douglas Stoker made a presentation to the partners including a spectacular fly-thought, on three screens, of the city of Chicago, that led to the preparation for the partners of a booklet based on the potential of informatics. Stoker became a partner in 1984 and SOM formed a joint venture with IBM for the development and sale of software and services. Later, there was a transformation of the market in which this initiative was moving. From a recollection of John Zils, associate partner and currently in charge for the group of structural engineers SOM Chicago: “many people began to realize that computer software would have produced a lot of money and they threw themselves into this market [investing in research] with a force that for us became impossible to compete with them.” As a result, SOM sold its system to IBM. However, says Zils: “this sale still remains something difficult to stand. <strong>We were used to create our own software customized for what we wanted to do…</strong> And now we are dependent of others who do things for us and that, of course, are not in the way in which we want them. We are always having to evaluate different software to find the one that better fits to our needs.”</p>
<p align="left">From ADAMS N., <em>Skidmore, Owings &amp; Merrill: SOM since 1936</em>, Phaidon Press, 2007.<br />
(Extracted from the Italian publication, from which derives my English translation)</p>
<p align="left">Adapting software to the specific needs of the designer is clearly a necessity that dates back to the birth of computers. Perhaps, even more than today, these technologies were considered as something that is not a constrain for design but rather something that allows to expand design tools, even leaving the designer totally free to create them by himself.<br />
A correct approach in the use of computer is the first step to take towards a constructive critical debate on the use of new technologies within the architectural design. I note that several of the most recent publications (For instance Architettura e cultura digitale, DeLanda, etc…) forget the arguments of Frazer, Graham and Khan. They are only the first of many designers, including the Italian Luigi Moretti, who almost half a century ago have reflected about using new tools. In conclusion, why we do not start from this theoretical bases rather than digress completely from the main topic, as often happens today?<br />
 <br />
<strong>PERSONALIZZATORI PRECOCI, Nuovi strumenti (2)</strong></p>
<p align="left">“<strong>Graham fu promotore della creazione di un programma computerizzato denominato Building Optimization Program (BOP)</strong>, finalizzato all’abbattimento dei costi di costruzione. Questo programma era studiato come uno strumento diagnostico mediante il quale architetti e ingegneri potevano individuare i punti nei quali i costi esecutivi potevano essere tagliati, ma, naturalmente, attirava l’accusa che la priorità principale fosse l’economia più che il progetto.<br />
[…] Anche l’introduzione delle possibilità insite nella progettazione computerizzata fu il risultato della collaborazione tra Graham e Khan. L’uso dei computer da parte di SOM risale ai primi anni cinquanta e alla costruzione dell’Accademia dell’Aeronautica. Negli anni successivi, con lo sviluppo della ricerca, i computer entrarono da SOM, come accadde in molte aziende, inizialmente attraverso il settore amministrativo. Nel 1963 SOM installò un IBM-1620 che veniva utilizzato per lo studio di sistemi strutturali complessi, dei fabbisogni energetici e per la gestione progettuale e finanziaria. Khan, Graham e un terzo partner, Richard Keating, erano convinti che i computer avrebbero avuto anche altre applicazioni, quindi decisero di investire nell’aggiornamento della dotazione informatica di SOM. Quando, a metà degli anni settanta, furono elaborati i primi programmi CAD, SOM cominciò ad assumere programmatori ed esperti di computer. Nel 1980 Douglas Stoker fece una presentazione ai partner comprendente uno spettacolare fly-throught, su tre schermi, della città di Chicago, che portò alla preparazione ai partner di una brochure sulle virtù della tecnologia informatica. Stoker divenne partner nel 1984 e SOM formò una joint venture con IBM per lo sviluppo e la vendita di servizi e software informatici. Successivamente, intervenne però una trasformazione del mercato nel quale questa iniziativa si muoveva. Come ricorda John Zils, associate partner e attualmente responsabile del gruppo strutturisti di SOM Chicago, “molta gente cominciava a rendersi conto che i software per computer avrebbero fatto moltissimi soldi e ci si buttarono [investendo denaro e ricerca] con una forza tale che per noi diventò impossibile competere”. Di conseguenza, SOM vendette il proprio sistema a IBM. Tuttavia, dice Zils: “ancora oggi la vendita rimane una cosa difficile da digerire. <strong>Eravamo abituati a crearci da soli il software su misura per quello che volevamo fare…</strong> E adesso ci troviamo a dipendere da altri che fanno le cose per noi e che, naturalmente, non le fanno nel modo, in cui noi vogliamo farle. Ci troviamo sempre a dover valutare i diversi software per trovare quello che si avvicina di più alle nostre esigenze.”</p>
<p align="left">Tratto da: ADAMS N., <em>Skidmore, Owings &amp; Merrill: SOM dal 1936</em>, Electa, Milano 2006, pp. 34-36.</p>
<p align="left">L’adattamento del software alle specifiche esigenze del progettista è una necessità che evidentemente risale alla nascita dei computer. Forse ancora più che oggi, queste tecnologie erano viste come un qualcosa che non vincolava la progettazione ma piuttosto permetteva di ampliare gli strumenti progettuali, addirittura lasciando la totale libertà di crearseli su misura.<br />
Un corretto approccio nell’uso dei computer è il primo passo da compiere verso un dibattito critico costruttivo sull’uso delle nuove tecnologie all’interno del progetto architettonico. Noto invece che parecchie tra le più recenti pubblicazioni (vedi Architettura e cultura digitale, vedi DeLanda, ecc&#8230;) dimenticano i ragionamenti di Frazer, di Graham e Khan. Questi ultimi addirittura progettisti che non si occupavano nello specifico di ricerca informatica. Sono solo i primi di tanti nomi, tra cui anche l’italiano Luigi Moretti, che quasi mezzo secolo addietro hanno ragionato sull’uso di nuovi strumenti informatici. A questo punto, perché non partire da queste basi invece di uscire totalmente fuori tema, come spesso accade oggi?</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/albertopugnale.wordpress.com/89/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/albertopugnale.wordpress.com/89/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/albertopugnale.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/albertopugnale.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/albertopugnale.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/albertopugnale.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/albertopugnale.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/albertopugnale.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/albertopugnale.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/albertopugnale.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/albertopugnale.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/albertopugnale.wordpress.com/89/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=albertopugnale.wordpress.com&blog=863692&post=89&subd=albertopugnale&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://albertopugnale.wordpress.com/2008/01/11/early-customizers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19bd725288a454bf0ef1c7bd509150ca?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">albertopugnale</media:title>
		</media:content>

		<media:content url="http://albertopugnale.files.wordpress.com/2008/01/som.jpg" medium="image">
			<media:title type="html">Personalizzatori precoci</media:title>
		</media:content>
	</item>
	</channel>
</rss>