matRad_DoseObjective

Purpose ^

Synopsis ^

This is a script file.

Description ^

Cross-reference information ^

This function calls: This function is called by:

Subfunctions ^

Source code ^

0001 classdef (Abstract) matRad_DoseObjective < matRad_DoseOptimizationFunction
0002 % matRad_DoseObjective: Interface for optimization objectives
0003 %   This abstract base class provides the structure of optimization
0004 %   objectives like mean dose, squared deviation, EUD, dose-volume etc.
0005 %   Implementations can be found in the DoseObjectives package
0006 %
0007 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0008     
0009 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0010 %
0011 % Copyright 2015 the matRad development team.
0012 %
0013 % This file is part of the matRad project. It is subject to the license
0014 % terms in the LICENSE file found in the top-level directory of this
0015 % distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part
0016 % of the matRad project, including this file, may be copied, modified,
0017 % propagated, or distributed except according to the terms contained in the
0018 % LICENSE file.
0019 %
0020 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0021     
0022     properties (Abstract, Access = public)
0023         penalty             %Optimization penalty
0024     end
0025     
0026     %These should be abstract methods, however Octave can't parse them. As soon
0027     %as Octave is able to do this, they should be made abstract again
0028     methods %(Abstract)
0029        
0030         %returns the objective function value for the given dose vector. Needs to be implemented in sub-classes.
0031         function fDose       = computeDoseObjectiveFunction(obj,dose)
0032             error('Function needs to be implemented!');
0033         end
0034         
0035         
0036         %returns the dose-gradient for the given dose vector. Needs to be implemented in sub-classes.
0037         function fDoseGrad   = computeDoseObjectiveGradient(obj,dose)
0038             error('Function needs to be implemented!');
0039         end
0040          
0041     end
0042     
0043     methods (Access = public)
0044        
0045         % constructor of matRad_DoseObjective
0046         function obj = matRad_DoseObjective(varargin)
0047             %default initialization from struct (parameters & penalty)
0048             obj@matRad_DoseOptimizationFunction(varargin{:});
0049         end
0050         
0051         %Overloads the struct function to add Objective related information
0052         %to output struct
0053         function s = struct(obj)
0054             s = struct@matRad_DoseOptimizationFunction(obj);
0055             s.penalty = obj.penalty;
0056         end
0057     end 
0058 end
0059

| Generated by m2html © 2005