File: demo_nonlinear_elasticity_anim.m

package info (click to toggle)
getfem%2B%2B 5.1%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 32,668 kB
  • ctags: 20,930
  • sloc: cpp: 110,660; ansic: 72,312; python: 6,064; sh: 3,608; perl: 1,710; makefile: 1,343
file content (52 lines) | stat: -rw-r--r-- 1,933 bytes parent folder | download
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
% Copyright (C) 2005-2016 Julien Pommier.
%
% This file is a part of GetFEM++
%
% GetFEM++  is  free software;  you  can  redistribute  it  and/or modify it
% under  the  terms  of the  GNU  Lesser General Public License as published
% by  the  Free Software Foundation;  either version 3 of the License,  or
% (at your option) any later version along with the GCC Runtime Library
% Exception either version 3.1 or (at your option) any later version.
% This program  is  distributed  in  the  hope  that it will be useful,  but
% WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
% or  FITNESS  FOR  A PARTICULAR PURPOSE.  See the GNU Lesser General Public
% License and GCC Runtime Library Exception for more details.
% You  should  have received a copy of the GNU Lesser General Public License
% along  with  this program;  if not, write to the Free Software Foundation,
% Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA.


% replay all the computations of demo_nonlinear_elasticity.m

load demo_nonlinear_elasticity_U.mat
nbstep = size(UU,1);
m=gfMesh('from string', m_char);
mfu=gfMeshFem('from string',mfu_char,m);
mfdu=gfMeshFem('from string',mfdu_char,m);



sl=gfSlice({'boundary'}, m, 16, gf_mesh_get(m,'outer faces'));
P0=gf_slice_get(sl,'pts');
for step=1:1:nbstep,
  U=UU(step,:);
  VM=VVM(step,:);
  
  slU=gf_compute(mfu,U,'interpolate on',sl);
  slVM=gf_compute(mfdu,VM,'interpolate on',sl);
  
  gf_slice_set(sl,'pts', P0+slU);
  
  gf_plot_slice(sl, 'data', slVM, 'mesh_edges','on', 'mesh','on'); 
  
  %gf_plot(mfdu,VM,'mesh','on', 'cvlst',gf_mesh_get(mfdu,'outer faces'), 'deformation',U,'deformation_mf',mfu,'deformation_scale', 1, 'refine', 16); 
  axis([-3     6     0    20    -2     2]);
  caxis([0 .15]);
  view(30+20*w, 23+30*w);  
  campos([50 -30 80]);
  camva(8);
  camup;
  camlight; 
  axis off;
  print(gcf, '-dpng', '-r150', sprintf('torsion%03d',step));
end;