www.gusucode.com > pde 案例源码 matlab代码程序 > pde/icEvaluator.m

    classdef icEvaluator
% icEvaluator Evaluates Initial Conditions data at requested locations
% ICE = icEvaluator(R) Creates an initial conditions evaluator from a 
% results object. The evaluator provides a function that can be called at 
% specific locations within the geometry. This class customized to represent
% a stationary solution.
%
% icEvaluator methods:
%    computeIC - Computes ICs at locations within the geometric domain
%

% Copyright 2015 The MathWorks, Inc.              
    properties
        Results;           
    end

    methods
        function obj = icEvaluator(R)                 
            obj.Results = R;                                                                                                                                 
        end
                
        function ic = computeIC(obj,locations)
            is2d = size(obj.Results.Mesh.Nodes, 1) == 2;
            if is2d
                querypts = [locations.x; locations.y];
            else
                  querypts = [locations.x; locations.y; locations.z];
            end
            numeqns = size(obj.Results.NodalSolution,2);
            if numeqns == 1 
                ic = interpolateSolution(obj.Results, querypts);
            else       
                ic = zeros(numeqns, numel(locations.x));
                for i = 1:numeqns
                    ic(i,:) = interpolateSolution(obj.Results, querypts, i);
                end             
            end           
        end       
    end    
end