Strumenti Utente

Strumenti Sito


wikipaom2015:lez08

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
wikipaom2015:lez08 [2015/06/24 10:18]
163359
wikipaom2015:lez08 [2015/06/25 09:51] (versione attuale)
163359 [Vincolamento di una matrice di Rigidezza]
Linea 196: Linea 196:
 ==== Vincolamento di una matrice di Rigidezza ​ ==== ==== Vincolamento di una matrice di Rigidezza ​ ====
  
 +Si vuole vincolare la matrice di rigidezza della struttura STRUTK ai termini noti o forze applicate sulla struttura (FORCE) e agli spostamenti che in realtà sono incogniti. Così si opera direttamente con una subroutine: ​
  
        ​subroutine vincola(N,​STRUTK,​FORCE,​I,​V)        ​subroutine vincola(N,​STRUTK,​FORCE,​I,​V)
Linea 211: Linea 212:
 Fine Dichiarazioni ed Inizio Istruzioni Fine Dichiarazioni ed Inizio Istruzioni
  
-Azzero ​la riga I-esima della matrice STRUTK+Affinché la matrice possa essere simmetrica e definita positiva,​azzero ​la riga I-esima della matrice STRUTK
        do J = 1,N        do J = 1,N
         STRUTK( I , J ) = 0.0         STRUTK( I , J ) = 0.0
        enddo        enddo
                
-Scrivo 1.0 sul termine diagonale di tale riga+ma si sa anche che l'​elemento della i-esima riga e i-esima colonna non vale zero. Scrivo 1.0 sul termine diagonale di tale riga
        ​STRUTK(I,​I) = 1.0        ​STRUTK(I,​I) = 1.0
  
-Scrivo ​il valore imposto V a termine noto, elemento I-esimo+Definisco ​il valore imposto V a termine noto, elemento I-esimo
        ​FORCE(I) = V        ​FORCE(I) = V
  
-Recupero ​la simmetria della matrice+Ora bisogna recuperare ​la simmetria della matrice ​annullando i termini della i-esima colonna, perciò creo due blocchi di matrice che vanno da 1 a I-1 e da I+1 ad N 
  
        do J = 1 , I-1        do J = 1 , I-1
Linea 229: Linea 230:
        enddo        enddo
  
-Salto caso J=I, legato alla diagonale+Salto caso J=I, legato alla diagonale ​che già era stato impostato in precedenza e si ottiene: ​
  
        do J = I+1 , N        do J = I+1 , N
Linea 236: Linea 237:
        enddo        enddo
  
 +Basta chiudere la subroutine e il main e si ottiene il codice di vincolamento.
  
  
wikipaom2015/lez08.txt · Ultima modifica: 2015/06/25 09:51 da 163359