Changeset 16463
- Timestamp:
- 10/18/13 16:14:45 (11 years ago)
- Location:
- issm/trunk-jpl/src/m/classes
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/stressbalance.m
r16458 r16463 73 73 obj.rift_penalty_lock=10; 74 74 75 %output default: 76 obj.requested_outputs={'default'}; 77 75 78 end % }}} 76 79 function md = checkconsistency(obj,md,solution,analyses) % {{{ … … 116 119 md = checkfield(md,'stressbalance.FSreconditioning','>',0); 117 120 end 121 end % }}} 122 function list=defaultoutputs(self,md) % {{{ 123 124 if strcmp(meshtype(md.mesh),'3D'), 125 list = {'Vx','Vy','Vz','Vel','Pressure'}; 126 elseif strcmp(meshtype(md.mesh),'2Dhorizontal'), 127 list = {'Vx','Vy','Vel','Pressure'}; 128 elseif strcmp(meshtype(md.mesh),'2Dvertical'), 129 list = {'Vx','Vy','Vel','Pressure'}; 130 else 131 error('mesh type not supported yet'); 132 end 133 118 134 end % }}} 119 135 function disp(obj) % {{{ … … 170 186 WriteData(fid,'object',obj,'class','stressbalance','fieldname','rift_penalty_threshold','format','Integer'); 171 187 WriteData(fid,'object',obj,'class','stressbalance','fieldname','referential','format','DoubleMat','mattype',1); 172 WriteData(fid,'object',obj,'class','stressbalance','fieldname','requested_outputs','format','StringArray'); 188 173 189 WriteData(fid,'data',obj.loadingforce(:,1),'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum); 174 190 WriteData(fid,'data',obj.loadingforce(:,2),'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum); 175 191 WriteData(fid,'data',obj.loadingforce(:,3),'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum); 192 193 %process requested outputs 194 outputs = obj.requested_outputs; 195 pos = find(ismember(outputs,'default')); 196 if ~isempty(pos), 197 outputs(pos) = []; %remove 'default' from outputs 198 outputs = [outputs defaultoutputs(obj,md)]; %add defaults 199 end 200 WriteData(fid,'data',outputs,'enum',StressbalanceRequestedOutputsEnum,'format','StringArray'); 176 201 end % }}} 177 202 end -
issm/trunk-jpl/src/m/classes/stressbalance.py
r16458 r16463 6 6 from checkfield import * 7 7 from WriteData import * 8 from MatlabFuncs import * 8 9 9 10 class stressbalance(object): … … 102 103 self.rift_penalty_lock=10 103 104 105 #output default: 106 self.requested_outputs=['default'] 107 104 108 return self 109 #}}} 110 def defaultoutputs(self,md): # {{{ 111 112 if strcmp(md.mesh.meshtype(),'3D'): 113 list = ['Vx','Vy','Vz','Vel','Pressure'] 114 elif strcmp(md.mesh.meshtype(),'2Dhorizontal'): 115 list = ['Vx','Vy','Vel','Pressure'] 116 elif strcmp(md.mesh.meshtype(),'2Dvertical'): 117 list = ['Vx','Vy','Vel','Pressure'] 118 else: 119 raise TypeError('mesh type not supported yet'); 120 return list 121 105 122 #}}} 106 123 def checkconsistency(self,md,solution,analyses): # {{{ … … 171 188 WriteData(fid,'object',self,'class','stressbalance','fieldname','rift_penalty_threshold','format','Integer') 172 189 WriteData(fid,'object',self,'class','stressbalance','fieldname','referential','format','DoubleMat','mattype',1) 173 WriteData(fid,'object',self,'class','stressbalance','fieldname','requested_outputs','format','StringArray') 190 174 191 WriteData(fid,'data',self.loadingforce[:,0],'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum()) 175 192 WriteData(fid,'data',self.loadingforce[:,1],'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum()) 176 193 WriteData(fid,'data',self.loadingforce[:,2],'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum()) 194 195 #process requested outputs 196 outputs = self.requested_outputs 197 indices = [i for i, x in enumerate(outputs) if x == 'default'] 198 if len(indices) > 0: 199 outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:] 200 outputs =outputscopy 201 WriteData(fid,'data',outputs,'enum',StressbalanceRequestedOutputsEnum(),'format','StringArray') 177 202 # }}}
Note:
See TracChangeset
for help on using the changeset viewer.