Changeset 17725
- Timestamp:
- 04/14/14 15:19:58 (11 years ago)
- Location:
- issm/trunk-jpl/src/m/extrusion
- Files:
-
- 2 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/extrusion/DepthAverage.m
r17687 r17725 1 1 function vector_average=DepthAverage(md,vector) 2 %DEPTHAVERAGE - computes depth average of 3d vector , and returnvalue on 2d mesh.2 %DEPTHAVERAGE - computes depth average of 3d vector using the trapezoidal rule, and returns the value on 2d mesh. 3 3 % 4 4 % Usage: -
issm/trunk-jpl/src/m/extrusion/project3d.py
r17686 r17725 1 1 import numpy 2 2 from pairoptions import pairoptions 3 import MatlabFuncs as m4 3 5 4 def project3d(md,*args): … … 16 15 'layer' a layer number where vector should keep its values. If not specified, all layers adopt the 17 16 value of the 2d vector. 18 'padding': default to 0 (value adopted by other 3d layers not being projected 017 'padding': default to 0 (value adopted by other 3d layers not being projected 19 18 20 E gs:21 extruded_vector=project3d(md,'vector',vector2d,'type','node','layer',1,'padding',NaN) ;22 extruded_vector=project3d(md,'vector',vector2d,'type','element','padding',0) ;23 extruded_vector=project3d(md,'vector',vector2d,'type','node') ;19 Examples: 20 extruded_vector=project3d(md,'vector',vector2d,'type','node','layer',1,'padding',NaN) 21 extruded_vector=project3d(md,'vector',vector2d,'type','element','padding',0) 22 extruded_vector=project3d(md,'vector',vector2d,'type','node') 24 23 """ 25 24 … … 27 26 if not md: 28 27 raise TypeError("bad usage") 29 if not m.strcmp(md.mesh.elementtype(),'Penta'):28 if md.mesh.domaintype().lower() != '3d': 30 29 raise TypeError("input model is not 3d") 31 30 … … 33 32 options = pairoptions(*args) 34 33 vector2d = options.getfieldvalue('vector') #mandatory 35 type= options.getfieldvalue('type') #mandatory34 vectype = options.getfieldvalue('type') #mandatory 36 35 layer = options.getfieldvalue('layer',0) #optional (do all layers otherwise) 37 36 paddingvalue = options.getfieldvalue('padding',0) #0 by default … … 40 39 if isinstance(vector2d,numpy.ndarray) and numpy.ndim(vector2d)==1: 41 40 vector1d=True 42 vector2d=vector2d.reshape( numpy.size(vector2d),1)41 vector2d=vector2d.reshape(-1,1) 43 42 44 if 43 if isinstance(vector2d,(bool,int,long,float)) or numpy.size(vector2d)==1: 45 44 projected_vector=vector2d 46 45 47 elif m.strcmpi(type,'node'):46 elif vectype.lower()=='node': 48 47 49 48 #Initialize 3d vector 50 if numpy.size(vector2d,axis=0)==md.mesh.numberofvertices2d:49 if vector2d.shape[0]==md.mesh.numberofvertices2d: 51 50 projected_vector=(paddingvalue*numpy.ones((md.mesh.numberofvertices, numpy.size(vector2d,axis=1)))).astype(vector2d.dtype) 52 elif numpy.size(vector2d,axis=0)==md.mesh.numberofvertices2d+1:51 elif vector2d.shape[0]==md.mesh.numberofvertices2d+1: 53 52 projected_vector=(paddingvalue*numpy.ones((md.mesh.numberofvertices+1,numpy.size(vector2d,axis=1)))).astype(vector2d.dtype) 54 53 projected_vector[-1,:]=vector2d[-1,:] … … 64 63 projected_vector[((layer-1)*md.mesh.numberofvertices2d):(layer*md.mesh.numberofvertices2d),:]=vector2d 65 64 66 elif m.strcmpi(type,'element'):65 elif vectype.lower()=='element': 67 66 68 67 #Initialize 3d vector 69 if numpy.size(vector2d,axis=0)==md.mesh.numberofelements2d:68 if vector2d.shape[0]==md.mesh.numberofelements2d: 70 69 projected_vector=(paddingvalue*numpy.ones((md.mesh.numberofelements, numpy.size(vector2d,axis=1)))).astype(vector2d.dtype) 71 elif numpy.size(vector2d,axis=0)==md.mesh.numberofelements2d+1:70 elif vector2d.shape[0]==md.mesh.numberofelements2d+1: 72 71 projected_vector=(paddingvalue*numpy.ones((md.mesh.numberofelements+1,numpy.size(vector2d,axis=1)))).astype(vector2d.dtype) 73 72 projected_vector[-1,:]=vector2d[-1,:] … … 87 86 88 87 if vector1d: 89 projected_vector=projected_vector.reshape( (numpy.size(projected_vector)))88 projected_vector=projected_vector.reshape(-1,) 90 89 91 90 return projected_vector 92
Note:
See TracChangeset
for help on using the changeset viewer.