matRad_calcDoseFillDij

Purpose ^

save computation time and memory

Synopsis ^

This is a script file.

Description ^

 save computation time and memory 
 by sequentially filling the sparse matrix dose.dij from the cell array

Cross-reference information ^

This function calls: This function is called by:

Source code ^

0001 % save computation time and memory
0002 % by sequentially filling the sparse matrix dose.dij from the cell array
0003 if mod(counter,numOfBixelsContainer) == 0 || counter == dij.totalNumOfBixels
0004 
0005     if calcDoseDirect
0006         if isfield(stf(1).ray(1),'weight') && numel(stf(i).ray(j).weight) >= k
0007 
0008             % score physical dose
0009             dij.physicalDose{1}(:,i) = dij.physicalDose{1}(:,i) + stf(i).ray(j).weight(k) * doseTmpContainer{1,1};
0010 
0011             if isfield(dij,'mLETDose')
0012                 dij.mLETDose{1}(:,i) = dij.mLETDose{1}(:,i) + stf(i).ray(j).weight(k) * letDoseTmpContainer{1,1};
0013             end
0014 
0015             if (isequal(pln.propOpt.bioOptimization,'LEMIV_effect') || isequal(pln.propOpt.bioOptimization,'LEMIV_RBExD')) ... 
0016                 && strcmp(pln.radiationMode,'carbon')
0017 
0018                 % score alpha and beta matrices
0019                 dij.mAlphaDose{1}(:,i)    = dij.mAlphaDose{1}(:,i) + stf(i).ray(j).weight(k) * alphaDoseTmpContainer{1,1};
0020                 dij.mSqrtBetaDose{1}(:,i) = dij.mSqrtBetaDose{1}(:,i) + stf(i).ray(j).weight(k) * betaDoseTmpContainer{1,1};
0021 
0022             end
0023         else
0024 
0025             error(['No weight available for beam ' num2str(i) ', ray ' num2str(j) ', bixel ' num2str(k)]);
0026 
0027         end
0028     else
0029 
0030         dij.physicalDose{1}(:,(ceil(counter/numOfBixelsContainer)-1)*numOfBixelsContainer+1:counter) = [doseTmpContainer{1:mod(counter-1,numOfBixelsContainer)+1,1}];
0031 
0032         if isfield(dij,'mLETDose')
0033             dij.mLETDose{1}(:,(ceil(counter/numOfBixelsContainer)-1)*numOfBixelsContainer+1:counter) = [letDoseTmpContainer{1:mod(counter-1,numOfBixelsContainer)+1,1}];
0034         end
0035 
0036         if (isequal(pln.propOpt.bioOptimization,'LEMIV_effect') || isequal(pln.propOpt.bioOptimization,'LEMIV_RBExD')) ... 
0037             && strcmp(pln.radiationMode,'carbon')
0038 
0039             dij.mAlphaDose{1}(:,(ceil(counter/numOfBixelsContainer)-1)*numOfBixelsContainer+1:counter) = [alphaDoseTmpContainer{1:mod(counter-1,numOfBixelsContainer)+1,1}];
0040             dij.mSqrtBetaDose{1}(:,(ceil(counter/numOfBixelsContainer)-1)*numOfBixelsContainer+1:counter) = [betaDoseTmpContainer{1:mod(counter-1,numOfBixelsContainer)+1,1}];
0041         end
0042 
0043     end
0044     
0045 end

| Generated by m2html © 2005