Coucou tout
J'ai une petite question. Ici c'est mon script, je veux programmer une poutre 2D par méthode éléments finis, et ce morçeau est pour faire le maillage.
Intéressez-vous seulement aux lignes pour maillage parce que j'étais pas fini encore.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 
[D,B]=Constantes2;
 
 
[Nx,Ny,Connect,nx,ny]=MaillagePoutre2D;
 
 
[MatAssemble2DDL]=CreatMatriceAssemblages(Connect);
 
 
[Kglob]=AssembleKglob2D2(Connect,MatAssemble2DDL,Nx,Ny,B,D);
 
 
[F]=AssembleF(nx,ny,Nx);
 
 
[Kglob,ListeDdl]=ImposeCLpoutre(Kglob,Nx,Ny);
 
 
U=zeros(1,2*length(Nx));
U(ListeDdl)=(Kglob(ListeDdl,ListeDdl))\F(ListeDdl);
[Vxresult,Vyresult]=PostTraitement2(U,Nx,Ny,Connect,MatAssemble2DDL,B,D);
 
%function [D,B]=Constantes2()
%nu=0.3;
%E=210000;
%lam=(E*nu)/((1+nu)*(1-2*nu));
%mu=E/(2*(1+nu));
%C=[(lam+2*mu) lam 0
%    lam (lam+2*mu) 0
%    0 0 mu];
%A=[1 0 0 0
%    0 0 0 0
%    0 1 1 0];
%D=A'*C*A;
%B=[-1 0 1 0 0 0
%    -1 0 0 0 1 0
%    0 -1 0 1 0 0
%    0 -1 0 0 0 1];
 
 
function [Nx,Ny,Connect,nx,ny]=MaillagePoutre2D()
L=input('entrez la longueur L (50)');
H=input('entrez la hauteur H(10)');
nx=input('entrez le nombre de noeuds sur la longueur(15)');
ny=input('entrez le nombre de noeuds sur la hauteur(6)');
 
l=L/(nx-1);
h=H/(ny-1);
 
k=0;
for i=1:nx
    for j=1:ny
        k=k+1;
        Nx(k)=(i-1)*l;
        Ny(k)=(j-1)*h;
    end
end
 
 
plot(Nx,Ny,'k.')
axis equal
hold on
Quand je cliquer sur "Run", il y a une erreur comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
"?? Error: File: poutre2D.m Line: 41 Column: 1
Function definitions are not permitted at the prompt or in scripts."
la ligne 41 est la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
function [Nx,Ny,Connect,nx,ny]=MaillagePoutre2D()
Qui a la resolution pour ça ? merci d'avant !