/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/ /* [ Created with wxMaxima version 0.8.7 ] */ /* [wxMaxima: input start ] */ kill(all); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ assume( L>0 ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] coordinate nodali elemento, lato jk di lunghezza L a inclinazione alpha rispetto alla verticale [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ alpha:%pi/6; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ x : transpose(matrix( [1 , 5 ,5 - L*sin(alpha), 1] )); y : transpose(matrix( [1 , 1 ,1 + L*cos(alpha), 5] )); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] fattore di scala visualizzazione azioni esterne [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ampfac : 1; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] definizione carichi distribuiti di superficie; carico distribuito su solo lato jk con azione in direzione x variabile linearmente in y da p-dp a p+dp [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ sx_ij(x,y) := 0; sy_ij(x,y) := 0; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ sx_jk(x,y) := p+dp*( y - 1 - L*cos(alpha)/2 )/(L*cos(alpha)/2) ; sy_jk(x,y) := 0; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ sx_kl(x,y) := 0; sy_kl(x,y) := 0; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ sx_li(x,y) := 0; sy_li(x,y) := 0; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] visualizzazione elemento e carichi applicati [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ wxplot2d( ev( [ [ discrete, [x[1,1],x[2,1],x[3,1],x[4,1],x[1,1]], [y[1,1],y[2,1],y[3,1],y[4,1],y[1,1]] ] , [ discrete, [ x[2,1], x[2,1]+sx_jk(x[2,1],y[2,1])*ampfac, x[3,1]+sx_jk(x[3,1],y[3,1])*ampfac, x[3,1] ], [ y[2,1], y[2,1]+sy_jk(x[2,1],y[2,1])*ampfac, y[3,1]+sy_jk(x[3,1],y[3,1])*ampfac, y[3,1] ] ] ],L=4,p=1,dp=0.5 ), ['x,0,10], ['y,0,10], [legend,"elemento","sx,sy"] ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] funzioni di forma iso4 [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ Ni(xi,eta):=(1-xi)*(1-eta)/4; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ Nj(xi,eta):=(1+xi)*(1-eta)/4; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ Nk(xi,eta):=(1+xi)*(1+eta)/4; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ Nl(xi,eta):=(1-xi)*(1+eta)/4; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] matrice N dei moti elementari di spostamento [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ Nmat(xi,eta) := matrix( [Ni(xi,eta), 0,Nj(xi,eta), 0,Nk(xi,eta), 0,Nl(xi,eta), 0], [ 0,Ni(xi,eta), 0,Nj(xi,eta), 0,Nk(xi,eta), 0,Nl(xi,eta)] ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] vettore delle funzioni di forma nodali [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ define ( Nvec(xi,eta) , matrix( [Ni(xi,eta),Nj(xi,eta),Nk(xi,eta),Nl(xi,eta)] ) ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] coordinate fisiche (x,y) in funzione delle coordinate naturali (xi,eta) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ x(xi,eta):=Nvec(xi,eta) . x; y(xi,eta):=Nvec(xi,eta) . y; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] derivate parziali della funzione di mappatura [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ define ( dx_dxi (xi,eta) , diff(x(xi,eta),xi ) ); define ( dx_deta(xi,eta) , diff(x(xi,eta),eta) ); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ define ( dy_dxi (xi,eta) , diff(y(xi,eta),xi ) ); define ( dy_deta(xi,eta) , diff(y(xi,eta),eta) ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] integrazione sul perimetro: considero il solo contributo non nullo associato al lato jk [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] integrando, da integrarsi in eta da -1 a 1 [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] sul lato jk xi=1, eta varia da -1 a 1 t e* lo spessore dell'elemento [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ int_jk : t* matrix( [ sx_jk( x(1,eta) , y(1,eta) ) , sy_jk( x(1,eta) , y(1,eta) ) ] ) . Nmat(1,eta) * sqrt ( dx_deta(1,eta)^2 + dy_deta(1,eta)^2 ) ; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] integrale svolto in forma esatta [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ integrate(int_jk,eta,-1,1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ Fs_INT :fullratsimp(%); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] integrale svolto per quadratura gaussiana a 2 punti [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ 1* ev(int_jk, eta= 1/sqrt(3)) +1* ev(int_jk, eta=-1/sqrt(3)) ; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ Fs_QUAD: fullratsimp(%); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] [wxMaxima: comment end ] */ /* Maxima can't load/batch files which end with a comment! */ "Created with wxMaxima"$