From: <cd...@us...> - 2010-04-04 08:38:55
|
Revision: 7153 http://octave.svn.sourceforge.net/octave/?rev=7153&view=rev Author: cdf Date: 2010-04-04 08:38:49 +0000 (Sun, 04 Apr 2010) Log Message: ----------- bug fix Modified Paths: -------------- trunk/octave-forge/extra/msh/DESCRIPTION trunk/octave-forge/extra/msh/inst/msh2m_gmsh.m trunk/octave-forge/extra/msh/inst/msh2m_submesh.m Modified: trunk/octave-forge/extra/msh/DESCRIPTION =================================================================== --- trunk/octave-forge/extra/msh/DESCRIPTION 2010-04-04 06:56:52 UTC (rev 7152) +++ trunk/octave-forge/extra/msh/DESCRIPTION 2010-04-04 08:38:49 UTC (rev 7153) @@ -1,6 +1,6 @@ Name: msh -Version: 1.0.1 -Date: 2010-03-30 +Version: 1.0.2 +Date: 2010-04-04 Author: Carlo de Falco, Massimiliano Culpo Maintainer: Carlo de Falco, Massimiliano Culpo Title: MeSHing software package for octave @@ -9,5 +9,5 @@ SystemRequirements: gmsh (>= 1.6.5), awk Autoload: no License: GPL version 2 or later -Url: http://www.geuz.org/gmsh -SVNRelease: 7141 \ No newline at end of file +Url: http://octave.sf.net, http://www.geuz.org/gmsh +SVNRelease: 7152 \ No newline at end of file Modified: trunk/octave-forge/extra/msh/inst/msh2m_gmsh.m =================================================================== --- trunk/octave-forge/extra/msh/inst/msh2m_gmsh.m 2010-04-04 06:56:52 UTC (rev 7152) +++ trunk/octave-forge/extra/msh/inst/msh2m_gmsh.m 2010-04-04 08:38:49 UTC (rev 7153) @@ -39,7 +39,7 @@ ## @seealso{msh2m_structured_mesh, msh3m_gmsh, msh2m_mesh_along_spline} ## @end deftypefn -function [mesh] = msh2m_gmsh(geometry,varargin) +function mesh = msh2m_gmsh(geometry,varargin) ## Check input if !mod(nargin,2) # Number of input parameters @@ -117,14 +117,12 @@ if (verbose) printf("Setting region number in edge structure...\n"); endif - msh = struct("p",p,"t",t,"e",be); - msh.be = msh2m_topological_properties(msh, "boundary"); - msh.e(6,:) = msh.t(4,msh.be(1,:)); - jj = find (sum(msh.be>0)==4); - msh.e(7,jj) = msh.t(4,msh.be(3,jj)); - - mesh = struct("p",p,"e",be,"t",t); - + mesh = struct("p",p,"t",t,"e",be); + tmp = msh2m_topological_properties (mesh, "boundary"); + mesh.e(6,:) = t(4,tmp(1,:)); + jj = find (sum(tmp>0)==4); + mesh.e(7,jj) = t(4,tmp(3,jj)); + ## Delete temporary files if (verbose) printf("Deleting temporary files...\n"); @@ -147,4 +145,32 @@ %! system("rm circle.geo"); %! nnodest = length(unique(mesh.t)); %! nnodesp = columns(mesh.p); -%! assert(nnodest,nnodesp); \ No newline at end of file +%! assert(nnodest,nnodesp); + +%!demo +%! name = [tmpnam ".geo"]; +%! fid = fopen (name, "w"); +%! fputs (fid, "Point(1) = {0, 0, 0, .1};\n"); +%! fputs (fid, "Point(2) = {1, 0, 0, .1};\n"); +%! fputs (fid, "Point(3) = {1, 0.5, 0, .1};\n"); +%! fputs (fid, "Point(4) = {1, 1, 0, .1};\n"); +%! fputs (fid, "Point(5) = {0, 1, 0, .1};\n"); +%! fputs (fid, "Point(6) = {0, 0.5, 0, .1};\n"); +%! fputs (fid, "Line(1) = {1, 2};\n"); +%! fputs (fid, "Line(2) = {2, 3};\n"); +%! fputs (fid, "Line(3) = {3, 4};\n"); +%! fputs (fid, "Line(4) = {4, 5};\n"); +%! fputs (fid, "Line(5) = {5, 6};\n"); +%! fputs (fid, "Line(6) = {6, 1};\n"); +%! fputs (fid, "Point(7) = {0.2, 0.6, 0};\n"); +%! fputs (fid, "Point(8) = {0.5, 0.4, 0};\n"); +%! fputs (fid, "Point(9) = {0.7, 0.6, 0};\n"); +%! fputs (fid, "BSpline(7) = {6, 7, 8, 9, 3};\n"); +%! fputs (fid, "Line Loop(8) = {6, 1, 2, -7};\n"); +%! fputs (fid, "Plane Surface(9) = {8};\n"); +%! fputs (fid, "Line Loop(10) = {7, 3, 4, 5};\n"); +%! fputs (fid, "Plane Surface(11) = {10};\n"); +%! fclose (fid); +%! mesh = msh2m_gmsh (canonicalize_file_name (name)(1:end-4), "clscale", ".5"); +%! trimesh (mesh.t(1:3,:)', mesh.p(1,:)', mesh.p(2,:)'); +%! unlink (canonicalize_file_name (name)) \ No newline at end of file Modified: trunk/octave-forge/extra/msh/inst/msh2m_submesh.m =================================================================== --- trunk/octave-forge/extra/msh/inst/msh2m_submesh.m 2010-04-04 06:56:52 UTC (rev 7152) +++ trunk/octave-forge/extra/msh/inst/msh2m_submesh.m 2010-04-04 08:38:49 UTC (rev 7153) @@ -109,3 +109,37 @@ %! assert(omesh.t,t); %! assert(nodelist,nl); %! assert(elementlist,el); + +%!demo +%! name = [tmpnam ".geo"]; +%! fid = fopen (name, "w"); +%! fputs (fid, "Point(1) = {0, 0, 0, .1};\n"); +%! fputs (fid, "Point(2) = {1, 0, 0, .1};\n"); +%! fputs (fid, "Point(3) = {1, 0.5, 0, .1};\n"); +%! fputs (fid, "Point(4) = {1, 1, 0, .1};\n"); +%! fputs (fid, "Point(5) = {0, 1, 0, .1};\n"); +%! fputs (fid, "Point(6) = {0, 0.5, 0, .1};\n"); +%! fputs (fid, "Line(1) = {1, 2};\n"); +%! fputs (fid, "Line(2) = {2, 3};\n"); +%! fputs (fid, "Line(3) = {3, 4};\n"); +%! fputs (fid, "Line(4) = {4, 5};\n"); +%! fputs (fid, "Line(5) = {5, 6};\n"); +%! fputs (fid, "Line(6) = {6, 1};\n"); +%! fputs (fid, "Point(7) = {0.2, 0.6, 0};\n"); +%! fputs (fid, "Point(8) = {0.5, 0.4, 0};\n"); +%! fputs (fid, "Point(9) = {0.7, 0.6, 0};\n"); +%! fputs (fid, "BSpline(7) = {6, 7, 8, 9, 3};\n"); +%! fputs (fid, "Line Loop(8) = {6, 1, 2, -7};\n"); +%! fputs (fid, "Plane Surface(9) = {8};\n"); +%! fputs (fid, "Line Loop(10) = {7, 3, 4, 5};\n"); +%! fputs (fid, "Plane Surface(11) = {10};\n"); +%! fclose (fid); +%! mesh = msh2m_gmsh (canonicalize_file_name (name)(1:end-4), "clscale", ".5"); +%! mesh1 = msh2m_submesh (mesh, 7, 9); +%! subplot (1, 2, 1); +%! trimesh (mesh.t(1:3,:)', mesh.p(1,:)', mesh.p(2,:)'); +%! axis ("equal"); title ("full mesh") +%! subplot (1, 2, 2); +%! trimesh (mesh1.t(1:3,:)', mesh1.p(1,:)', mesh1.p(2,:)'); +%! axis ("equal"); title ("sub-mesh") +%! unlink (canonicalize_file_name (name)) \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |