Changeset 13808


Ignore:
Timestamp:
10/23/12 11:44:54 (12 years ago)
Author:
jschierm
Message:

NEW: Python and Matlab versions of roundmesh with rounding for exp files.

Location:
issm/trunk-jpl/src/m/mesh
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified issm/trunk-jpl/src/m/mesh/roundmesh.m

    r13741 r13808  
    1717x_list=ones(pointsonedge,1); y_list=ones(pointsonedge,1);
    1818theta=(0.:2.*pi/pointsonedge:2.*pi*(1.-1./pointsonedge))';
    19 x_list=radius*x_list.*cos(theta);
    20 y_list=radius*y_list.*sin(theta);
     19x_list=roundsigfig(radius*x_list.*cos(theta),12);
     20y_list=roundsigfig(radius*y_list.*sin(theta),12);
    2121A=struct('x',x_list,'y',y_list,'density',1.);
    2222expwrite(A,'RoundDomainOutline.exp');
     
    3333%delete domain
    3434delete('RoundDomainOutline.exp')
     35end
     36
     37function x=roundsigfig(x,n)
     38
     39digits=ceil(log10(abs(x)));
     40x=x./10.^digits;
     41x=round(x.*10.^n)./10.^n;
     42x=x.*10.^digits;
     43
     44pos=find(isnan(x));
     45x(pos)=0.;
     46
     47end
     48
  • TabularUnified issm/trunk-jpl/src/m/mesh/roundmesh.py

    r13741 r13808  
    2727        y_list=numpy.ones(pointsonedge)
    2828        theta=numpy.linspace(0.,2.*numpy.pi,num=pointsonedge,endpoint=False)
    29         x_list=radius*x_list*numpy.cos(theta)
    30         y_list=radius*y_list*numpy.sin(theta)
     29        x_list=roundsigfig(radius*x_list*numpy.cos(theta),12)
     30        y_list=roundsigfig(radius*y_list*numpy.sin(theta),12)
    3131        A=OrderedDict()
    3232        A['x']=x_list
     
    4949        return md
    5050
     51def roundsigfig(x,n):
     52
     53        digits=numpy.ceil(numpy.log10(numpy.abs(x)))
     54        x=x/10.**digits
     55        x=numpy.round(x,decimals=n)
     56        x=x*10.**digits
     57
     58        pos=numpy.nonzero(numpy.isnan(x))
     59        x[pos]=0.
     60
     61        return x
     62
Note: See TracChangeset for help on using the changeset viewer.