Manifold class

Manifold class

Contents

classdef Manifold < matlab.mixin.SetGetExactNames
        

The Manifold class is used to compute invariant manifolds for dynamical systems which are set up using the DynamicalSystem class. Its core property are the System attribute, which holds the dynamical system object, and the spectral subspace E, which indicates tangent to which spectral subspace the invariant manifolds should be constructed.

    properties
        System      % dynamical system object
        dimSystem   % Phase space dimensionality

        E = []      % invariant subspace of the linearized system (data structure)
        N = []      % Invariant torus of the linearized system

        resonance   % (near) resonances data structure
        dimManifold % manifold dimensionality

        Options = ManifoldOptions()
    end

    properties (SetAccess = private)
        solInfo = struct('memoryEstimate', [], 'timeEstimate', [])
        solInfoNonAut = struct('timeEstimate',[])
        % This data structure stores the solution information:
        % memory consumption estimate in MB at each order
        % computational time estimate in seconds at each order
    end


    methods
        
        % Constructor
        function obj = Manifold(Sys)
            %MANIFOLD Construct an instance of this class
            %   Detailed explanation goes here
            obj.System = Sys;
        end
        

GET methods

        function N = get.dimSystem(obj)
            N = obj.System.N;
        end

        function M = get.dimManifold(obj)
            M = 0;
            if ~isempty(obj.E)
                M = M + size(obj.E.basis,2);
            end

            if ~isempty(obj.N)
                M = M + numel(obj.N.Omega);
            end
        end
        

General Methods

The master spectral subspace is chosen with the function choose_E. Its input indicates which modes should be included in said subspace.

        choose_E(obj,modes)
        

An autonomous approximation to the invariant manifold can be computed with the following method.

        [W_0, R_0] = compute_whisker(obj, order)
        

This routine crucially relies on the following function, which solves the autonomous invariance equation at order i.

        [W_0j, R_0j, multi_input] = cohomological_solution(obj, i,  W_0, R_0, multi_input)
        

After an autonomous approximation has been computed, the non-autonomous manifold may be computed with the following function.

        [W, f] = compute_perturbed_whisker(obj, order,W0,R0,varargin)
        

The domain of analyticity of the autonomous reduced dynamics Taylor approximation can be computed using

        [rho] = compute_analyticity_domain(obj,appr_order)
        

An estimate for the invariance error is provided in

        err = compute_auto_invariance_error(obj,W,R,rhosamp,orders,ntheta,varargin);
        

The invariance residual can be computed with

        res = compute_invariance_residual(obj,W0,R0,p,type,varargin)
        
    end
        
end