Changeset 24998
- Timestamp:
- 06/10/20 21:13:04 (5 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/FemModel.cpp
r24994 r24998 4491 4491 char root[50]; 4492 4492 int index; 4493 int npart;4494 4493 double femmodel_response; 4495 4494 int flag; … … 4498 4497 double *responses_pointer = NULL; 4499 4498 4500 /*retrieve npart: */ 4501 parameters->FindParam(&npart,QmuNumberofpartitionsEnum); 4499 IssmDouble **response_partitions = NULL; 4500 IssmDouble * response_partition = NULL; 4501 int * response_partitions_npart = NULL; 4502 int response_partitions_num; 4503 int npart; 4504 4505 /*retrieve partition vectors for responses that are scaled:*/ 4506 this->parameters->FindParam(&response_partitions,&response_partitions_num,NULL,NULL,QmuResponsePartitionsEnum); 4507 this->parameters->FindParam(&response_partitions_npart,NULL,NULL,QmuResponsePartitionsNpartEnum); 4508 4509 /*retrieve my_rank: */ 4502 4510 my_rank=IssmComm::GetRank(); 4503 4511 … … 4517 4525 GetVectorFromInputsx(&vertex_response,this, StringToEnumx(root),VertexPIdEnum); 4518 4526 4527 /*recover partition vector: */ 4528 response_partition=response_partitions[i]; 4529 npart=response_partitions_npart[i]; 4530 4519 4531 /*Now, average it onto the partition nodes: */ 4520 AverageOntoPartitionx(&qmu_response,elements,nodes,vertices,loads,materials,parameters,vertex_response );4532 AverageOntoPartitionx(&qmu_response,elements,nodes,vertices,loads,materials,parameters,vertex_response,response_partition,npart); 4521 4533 4522 4534 /*Copy onto our dakota responses: */ … … 4579 4591 } 4580 4592 /*}}}*/ 4593 4594 /*Free ressources:*/ 4595 for(i=0;i<response_partitions_num;i++){ 4596 IssmDouble* matrix=response_partitions[i]; 4597 xDelete<IssmDouble>(matrix); 4598 } 4599 xDelete<IssmDouble*>(response_partitions); 4581 4600 4582 4601 } -
issm/trunk-jpl/src/c/modules/AverageOntoPartitionx/AverageOntoPartitionx.cpp
r24168 r24998 14 14 #include "../../toolkits/toolkits.h" 15 15 16 void AverageOntoPartitionx(double** paverage, Elements* elements, Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,double* vertex_response){ 17 18 int npart; 19 double *qmu_vpart = NULL; 16 void AverageOntoPartitionx(double** paverage, Elements* elements, Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,double* vertex_response,double* qmu_part,int npart){ 20 17 21 18 /*output: */ … … 24 21 Vector<IssmDouble>* vec_average=NULL; 25 22 double* average=NULL; 26 27 /*First, recover qmu partition of vertices: */28 parameters->FindParam(&qmu_vpart,NULL,QmuVpartitionEnum);29 30 /*Some parameters: */31 parameters->FindParam(&npart,QmuNumberofpartitionsEnum);32 23 33 24 /*average onto the separate areas. The result will be a npart sized vector. */ … … 41 32 for(int i=0;i<elements->Size();i++){ 42 33 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 43 element->AverageOntoPartition(partition_contributions,partition_areas,vertex_response,qmu_ vpart);34 element->AverageOntoPartition(partition_contributions,partition_areas,vertex_response,qmu_part); 44 35 } 45 36 … … 55 46 56 47 /*Free ressources:*/ 57 xDelete<double>(qmu_vpart);58 48 delete partition_contributions; 59 49 delete partition_areas; -
issm/trunk-jpl/src/c/modules/AverageOntoPartitionx/AverageOntoPartitionx.h
r15000 r24998 8 8 #include "../../classes/classes.h" 9 9 10 void AverageOntoPartitionx(double** average, Elements* elements, Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,double* vertex_response);10 void AverageOntoPartitionx(double** paverage, Elements* elements, Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,double* vertex_response,double* qmu_part,int npart); 11 11 12 12 #endif /* _AVERAGEONTOPARTITIONXX_H */ -
issm/trunk-jpl/src/c/modules/ModelProcessorx/Dakota/CreateParametersDakota.cpp
r24989 r24998 73 73 parameters->AddObject(new StringArrayParam(QmuResponsedescriptorsEnum,responsedescriptors,numresponsedescriptors)); 74 74 75 /*Load partitioning vectors (both vertex and element based: */76 parameters->AddObject(iomodel->CopyConstantObject("md.qmu.numberofpartitions",QmuNumberofpartitionsEnum));77 78 75 /*Load partitioning vectors specific to variables:*/ 79 76 iomodel->FetchData(&array,&mdims_array,&ndims_array,&num_partitions,"md.qmu.variablepartitions"); … … 81 78 iomodel->FetchData(&intarray,&M,&N,"md.qmu.variablepartitions_npart"); 82 79 parameters->AddObject(new IntMatParam(QmuVariablePartitionsNpartEnum,intarray,M,N)); 80 81 /*free arrays: {{{*/ 82 for(i=0;i<num_partitions;i++){ 83 IssmDouble* matrix=array[i]; 84 xDelete<IssmDouble>(matrix); 85 } 86 xDelete<int>(mdims_array); 87 xDelete<int>(ndims_array); 88 xDelete<IssmDouble*>(array); 89 xDelete<int>(intarray); 90 /*}}}*/ 91 92 /*Load partitioning vectors specific to responses:*/ 93 iomodel->FetchData(&array,&mdims_array,&ndims_array,&num_partitions,"md.qmu.responsepartitions"); 94 parameters->AddObject(new DoubleMatArrayParam(QmuResponsePartitionsEnum,array,num_partitions,mdims_array,ndims_array)); 95 iomodel->FetchData(&intarray,&M,&N,"md.qmu.responsepartitions_npart"); 96 parameters->AddObject(new IntMatParam(QmuResponsePartitionsNpartEnum,intarray,M,N)); 97 98 /*free arrays: {{{*/ 99 for(i=0;i<num_partitions;i++){ 100 IssmDouble* matrix=array[i]; 101 xDelete<IssmDouble>(matrix); 102 } 103 xDelete<int>(mdims_array); 104 xDelete<int>(ndims_array); 105 xDelete<IssmDouble*>(array); 106 xDelete<int>(intarray); 107 /*}}}*/ 108 83 109 84 110 /*Deal with data needed because of qmu variables*/ … … 124 150 xDelete<char>(qmuoutname); 125 151 126 for(i=0;i<num_partitions;i++){ 127 IssmDouble* matrix=array[i]; 128 xDelete<IssmDouble>(matrix); 129 } 130 xDelete<int>(mdims_array); 131 xDelete<int>(ndims_array); 132 xDelete<IssmDouble*>(array); 133 xDelete<int>(intarray); 134 152 153 135 154 } 136 155 -
issm/trunk-jpl/src/c/shared/Enum/Enum.vim
r24989 r24998 290 290 syn keyword cConstant QmuInNameEnum 291 291 syn keyword cConstant QmuIsdakotaEnum 292 syn keyword cConstant QmuNumberofpartitionsEnum293 292 syn keyword cConstant QmuOutNameEnum 294 293 syn keyword cConstant QmuOutputEnum 295 294 syn keyword cConstant QmuCurrEvalIdEnum 296 syn keyword cConstant QmuEpartitionEnum297 syn keyword cConstant QmuVpartitionEnum298 295 syn keyword cConstant QmuResponsedescriptorsEnum 299 296 syn keyword cConstant QmuVariableDescriptorsEnum 300 297 syn keyword cConstant QmuVariablePartitionsEnum 301 298 syn keyword cConstant QmuVariablePartitionsNpartEnum 299 syn keyword cConstant QmuResponsePartitionsEnum 300 syn keyword cConstant QmuResponsePartitionsNpartEnum 302 301 syn keyword cConstant RestartFileNameEnum 303 302 syn keyword cConstant ResultsEnum -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r24989 r24998 284 284 QmuInNameEnum, 285 285 QmuIsdakotaEnum, 286 QmuNumberofpartitionsEnum,287 286 QmuOutNameEnum, 288 287 QmuOutputEnum, 289 288 QmuCurrEvalIdEnum, 290 QmuEpartitionEnum,291 QmuVpartitionEnum,292 289 QmuResponsedescriptorsEnum, 293 290 QmuVariableDescriptorsEnum, 294 291 QmuVariablePartitionsEnum, 295 292 QmuVariablePartitionsNpartEnum, 293 QmuResponsePartitionsEnum, 294 QmuResponsePartitionsNpartEnum, 296 295 RestartFileNameEnum, 297 296 ResultsEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r24989 r24998 292 292 case QmuInNameEnum : return "QmuInName"; 293 293 case QmuIsdakotaEnum : return "QmuIsdakota"; 294 case QmuNumberofpartitionsEnum : return "QmuNumberofpartitions";295 294 case QmuOutNameEnum : return "QmuOutName"; 296 295 case QmuOutputEnum : return "QmuOutput"; 297 296 case QmuCurrEvalIdEnum : return "QmuCurrEvalId"; 298 case QmuEpartitionEnum : return "QmuEpartition";299 case QmuVpartitionEnum : return "QmuVpartition";300 297 case QmuResponsedescriptorsEnum : return "QmuResponsedescriptors"; 301 298 case QmuVariableDescriptorsEnum : return "QmuVariableDescriptors"; 302 299 case QmuVariablePartitionsEnum : return "QmuVariablePartitions"; 303 300 case QmuVariablePartitionsNpartEnum : return "QmuVariablePartitionsNpart"; 301 case QmuResponsePartitionsEnum : return "QmuResponsePartitions"; 302 case QmuResponsePartitionsNpartEnum : return "QmuResponsePartitionsNpart"; 304 303 case RestartFileNameEnum : return "RestartFileName"; 305 304 case ResultsEnum : return "Results"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r24989 r24998 298 298 else if (strcmp(name,"QmuInName")==0) return QmuInNameEnum; 299 299 else if (strcmp(name,"QmuIsdakota")==0) return QmuIsdakotaEnum; 300 else if (strcmp(name,"QmuNumberofpartitions")==0) return QmuNumberofpartitionsEnum;301 300 else if (strcmp(name,"QmuOutName")==0) return QmuOutNameEnum; 302 301 else if (strcmp(name,"QmuOutput")==0) return QmuOutputEnum; 303 302 else if (strcmp(name,"QmuCurrEvalId")==0) return QmuCurrEvalIdEnum; 304 else if (strcmp(name,"QmuEpartition")==0) return QmuEpartitionEnum;305 else if (strcmp(name,"QmuVpartition")==0) return QmuVpartitionEnum;306 303 else if (strcmp(name,"QmuResponsedescriptors")==0) return QmuResponsedescriptorsEnum; 307 304 else if (strcmp(name,"QmuVariableDescriptors")==0) return QmuVariableDescriptorsEnum; 308 305 else if (strcmp(name,"QmuVariablePartitions")==0) return QmuVariablePartitionsEnum; 309 306 else if (strcmp(name,"QmuVariablePartitionsNpart")==0) return QmuVariablePartitionsNpartEnum; 307 else if (strcmp(name,"QmuResponsePartitions")==0) return QmuResponsePartitionsEnum; 308 else if (strcmp(name,"QmuResponsePartitionsNpart")==0) return QmuResponsePartitionsNpartEnum; 310 309 else if (strcmp(name,"RestartFileName")==0) return RestartFileNameEnum; 311 310 else if (strcmp(name,"Results")==0) return ResultsEnum; … … 383 382 else if (strcmp(name,"SmbIsthermal")==0) return SmbIsthermalEnum; 384 383 else if (strcmp(name,"SmbIsturbulentflux")==0) return SmbIsturbulentfluxEnum; 384 else if (strcmp(name,"SmbK")==0) return SmbKEnum; 385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"SmbK")==0) return SmbKEnum; 389 else if (strcmp(name,"SmbNumRequestedOutputs")==0) return SmbNumRequestedOutputsEnum; 388 if (strcmp(name,"SmbNumRequestedOutputs")==0) return SmbNumRequestedOutputsEnum; 390 389 else if (strcmp(name,"SmbPfac")==0) return SmbPfacEnum; 391 390 else if (strcmp(name,"SmbRdl")==0) return SmbRdlEnum; … … 506 505 else if (strcmp(name,"BaseSlopeY")==0) return BaseSlopeYEnum; 507 506 else if (strcmp(name,"Bed")==0) return BedEnum; 507 else if (strcmp(name,"BedSlopeX")==0) return BedSlopeXEnum; 508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"BedSlopeX")==0) return BedSlopeXEnum; 512 else if (strcmp(name,"BedSlopeY")==0) return BedSlopeYEnum; 511 if (strcmp(name,"BedSlopeY")==0) return BedSlopeYEnum; 513 512 else if (strcmp(name,"CalvingCalvingrate")==0) return CalvingCalvingrateEnum; 514 513 else if (strcmp(name,"CalvingHabFraction")==0) return CalvingHabFractionEnum; … … 629 628 else if (strcmp(name,"HydrologyWatercolumnMax")==0) return HydrologyWatercolumnMaxEnum; 630 629 else if (strcmp(name,"HydrologyWaterVx")==0) return HydrologyWaterVxEnum; 630 else if (strcmp(name,"HydrologyWaterVy")==0) return HydrologyWaterVyEnum; 631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"HydrologyWaterVy")==0) return HydrologyWaterVyEnum; 635 else if (strcmp(name,"Ice")==0) return IceEnum; 634 if (strcmp(name,"Ice")==0) return IceEnum; 636 635 else if (strcmp(name,"IceMaskNodeActivation")==0) return IceMaskNodeActivationEnum; 637 636 else if (strcmp(name,"Input")==0) return InputEnum; … … 752 751 else if (strcmp(name,"SmbFAC")==0) return SmbFACEnum; 753 752 else if (strcmp(name,"SmbGdn")==0) return SmbGdnEnum; 753 else if (strcmp(name,"SmbGdnini")==0) return SmbGdniniEnum; 754 754 else stage=7; 755 755 } 756 756 if(stage==7){ 757 if (strcmp(name,"SmbGdnini")==0) return SmbGdniniEnum; 758 else if (strcmp(name,"SmbGsp")==0) return SmbGspEnum; 757 if (strcmp(name,"SmbGsp")==0) return SmbGspEnum; 759 758 else if (strcmp(name,"SmbGspini")==0) return SmbGspiniEnum; 760 759 else if (strcmp(name,"SmbHref")==0) return SmbHrefEnum; … … 875 874 else if (strcmp(name,"WaterfractionDrainage")==0) return WaterfractionDrainageEnum; 876 875 else if (strcmp(name,"WaterfractionDrainageIntegrated")==0) return WaterfractionDrainageIntegratedEnum; 876 else if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum; 877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum; 881 else if (strcmp(name,"Waterheight")==0) return WaterheightEnum; 880 if (strcmp(name,"Waterheight")==0) return WaterheightEnum; 882 881 else if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum; 883 882 else if (strcmp(name,"Outputdefinition1")==0) return Outputdefinition1Enum; … … 998 997 else if (strcmp(name,"BalancethicknessApparentMassbalance")==0) return BalancethicknessApparentMassbalanceEnum; 999 998 else if (strcmp(name,"BalancethicknessSoftAnalysis")==0) return BalancethicknessSoftAnalysisEnum; 999 else if (strcmp(name,"BalancethicknessSoftSolution")==0) return BalancethicknessSoftSolutionEnum; 1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"BalancethicknessSoftSolution")==0) return BalancethicknessSoftSolutionEnum; 1004 else if (strcmp(name,"BalancethicknessSolution")==0) return BalancethicknessSolutionEnum; 1003 if (strcmp(name,"BalancethicknessSolution")==0) return BalancethicknessSolutionEnum; 1005 1004 else if (strcmp(name,"BalancethicknessSpcthickness")==0) return BalancethicknessSpcthicknessEnum; 1006 1005 else if (strcmp(name,"BalancevelocityAnalysis")==0) return BalancevelocityAnalysisEnum; … … 1121 1120 else if (strcmp(name,"HydrologyPismAnalysis")==0) return HydrologyPismAnalysisEnum; 1122 1121 else if (strcmp(name,"HydrologyShaktiAnalysis")==0) return HydrologyShaktiAnalysisEnum; 1122 else if (strcmp(name,"HydrologyShreveAnalysis")==0) return HydrologyShreveAnalysisEnum; 1123 1123 else stage=10; 1124 1124 } 1125 1125 if(stage==10){ 1126 if (strcmp(name,"HydrologyShreveAnalysis")==0) return HydrologyShreveAnalysisEnum; 1127 else if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum; 1126 if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum; 1128 1127 else if (strcmp(name,"Hydrologydc")==0) return HydrologydcEnum; 1129 1128 else if (strcmp(name,"Hydrologypism")==0) return HydrologypismEnum; … … 1244 1243 else if (strcmp(name,"P1xP4")==0) return P1xP4Enum; 1245 1244 else if (strcmp(name,"P2")==0) return P2Enum; 1245 else if (strcmp(name,"P2bubble")==0) return P2bubbleEnum; 1246 1246 else stage=11; 1247 1247 } 1248 1248 if(stage==11){ 1249 if (strcmp(name,"P2bubble")==0) return P2bubbleEnum; 1250 else if (strcmp(name,"P2bubblecondensed")==0) return P2bubblecondensedEnum; 1249 if (strcmp(name,"P2bubblecondensed")==0) return P2bubblecondensedEnum; 1251 1250 else if (strcmp(name,"P2xP1")==0) return P2xP1Enum; 1252 1251 else if (strcmp(name,"P2xP4")==0) return P2xP4Enum; … … 1367 1366 else if (strcmp(name,"SealevelWeights")==0) return SealevelWeightsEnum; 1368 1367 else if (strcmp(name,"StrainRate")==0) return StrainRateEnum; 1368 else if (strcmp(name,"StressTensor")==0) return StressTensorEnum; 1369 1369 else stage=12; 1370 1370 } 1371 1371 if(stage==12){ 1372 if (strcmp(name,"StressTensor")==0) return StressTensorEnum; 1373 else if (strcmp(name,"StressbalanceViscosityOvershoot")==0) return StressbalanceViscosityOvershootEnum; 1372 if (strcmp(name,"StressbalanceViscosityOvershoot")==0) return StressbalanceViscosityOvershootEnum; 1374 1373 else if (strcmp(name,"SubelementMigration4")==0) return SubelementMigration4Enum; 1375 1374 else if (strcmp(name,"TimesteppingTimeAdapt")==0) return TimesteppingTimeAdaptEnum; -
issm/trunk-jpl/src/m/classes/qmu.m
r24989 r24998 15 15 vpartition = NaN; 16 16 epartition = NaN; 17 numberofpartitions = 0;18 17 numberofresponses = 0; 19 18 variabledescriptors = {}; … … 21 20 variablepartitions_npart = []; 22 21 responsedescriptors = {}; 22 responsepartitions = {}; 23 responsepartitions_npart = []; 23 24 mass_flux_profile_directory = NaN; 24 25 mass_flux_profiles = NaN; … … 194 195 WriteData(fid,prefix,'object',self,'fieldname','vpartition','format','DoubleMat','mattype',2); 195 196 WriteData(fid,prefix,'object',self,'fieldname','epartition','format','DoubleMat','mattype',2); 196 WriteData(fid,prefix,'object',self,'fieldname','numberofpartitions','format','Integer');197 197 WriteData(fid,prefix,'object',self,'fieldname','numberofresponses','format','Integer'); 198 198 WriteData(fid,prefix,'object',self,'fieldname','variabledescriptors','format','StringArray'); … … 200 200 WriteData(fid,prefix,'object',self,'fieldname','variablepartitions_npart','format','IntMat','mattype',3); 201 201 WriteData(fid,prefix,'object',self,'fieldname','responsedescriptors','format','StringArray'); 202 WriteData(fid,prefix,'object',self,'fieldname','responsepartitions','format','MatArray'); 203 WriteData(fid,prefix,'object',self,'fieldname','responsepartitions_npart','format','IntMat','mattype',3); 202 204 if ~isempty(self.mass_flux_segments), 203 205 WriteData(fid,prefix,'data',self.mass_flux_segments,'name','md.qmu.mass_flux_segments','format','MatArray'); -
issm/trunk-jpl/src/m/classes/qmu/response_function.m
r24870 r24998 53 53 disp(sprintf(' rell: %s' ,string_vec(rf(i).rell))); 54 54 disp(sprintf(' grell: %s' ,string_vec(rf(i).grell))); 55 if ~isempty( self.partition),56 disp(sprintf(' partition: %s' ,string_vec(rf(i).partition)));55 if ~isempty(rf.partition), 56 fielddisplay(rf,'partition','partition vector defining where response will be computed'); 57 57 end 58 58 disp(sprintf('\n')); -
issm/trunk-jpl/src/m/partition/partitioner.m
r24173 r24998 1 function md=partitioner(md,varargin)1 function partitionvector=partitioner(md,varargin) 2 2 %PARTITIONER - partition mesh 3 3 % … … 10 10 % recomputeadjacency: 'on' by default (set to 'off' to compute existing one) 11 11 % type: 'node' or 'element' partition vector (default to 'node') 12 % Output: md.qmu.partition recoverthe partition vector12 % Output: partitionvector: the partition vector 13 13 % 14 14 % Usage: 15 % md=partitioner(md,'package','chaco','npart',100,'weighting','on');15 % partitionvector=partitioner(md,'package','chaco','npart',100,'weighting','on'); 16 16 % 17 17 … … 140 140 end 141 141 142 if strcmpi(vectortype,'element') 143 md.qmu.epartition=part; 144 if isempty(md.qmu.vpartition) | (prod(size(md.qmu.vpartition))==1 & isnan(md.qmu.vpartition)) 145 md.qmu.vpartition=zeros(md.mesh.numberofvertices,1); 146 end 147 else 148 md.qmu.vpartition=part; 149 if isempty(md.qmu.epartition) | (prod(size(md.qmu.epartition))==1 & isnan(md.qmu.epartition)) 150 md.qmu.epartition=zeros(md.mesh.numberofelements,1); 151 end 152 end 142 %output 143 partitionvector=part; -
issm/trunk-jpl/src/m/qmu/preqmu.m
r24989 r24998 103 103 end 104 104 105 %build a MatArray of response partitions: 106 response_fieldnames=fieldnames(md.qmu.responses(ivar)); 107 responsepartitions={}; 108 responsepartitions_npart=[]; 109 for i=1:length(response_fieldnames), 110 field_name=response_fieldnames{i}; 111 fieldresponse=md.qmu.responses(ivar).(field_name); 112 if fieldresponse.isscaled(); 113 responsepartitions{end+1}=fieldresponse.partition; 114 responsepartitions_npart(end+1)=qmupart2npart(fieldresponse.partition); 115 else 116 responsepartitions{end+1}=[]; 117 responsepartitions_npart(end+1)=0; 118 end 119 end 120 105 121 106 122 %register the fields that will be needed by the Qmu model. … … 110 126 md.qmu.variablepartitions_npart=variablepartitions_npart; 111 127 md.qmu.responsedescriptors=responsedescriptors; 128 md.qmu.responsepartitions=responsepartitions; 129 md.qmu.responsepartitions_npart=responsepartitions_npart; 112 130 113 131 %now, we have to provide all the info necessary for the solutions to compute the responses. For ex, if mass_flux -
issm/trunk-jpl/src/m/qmu/setupdesign/QmuSetupResponses.m
r9650 r24998 13 13 %ok, dealing with semi-discrete distributed response. Distribute according to how many 14 14 %partitions we want 15 npart=qmupart2npart(responses.partition); 15 16 16 for j=1: md.qmu.numberofpartitions17 for j=1:npart, 17 18 dresp(end+1) =responses; 18 19 dresp(end ).descriptor=sprintf('%s_%d',responses.descriptor,j);
Note:
See TracChangeset
for help on using the changeset viewer.