Source code for RCAIDE.Library.Mission.Common.Initialize.differentials_dimensionless

# RCAIDE/Library/Missions/Common/Initialize/differentials_dimensionless.py
# 
# 
# Created:  Jul 2023, M. Clarke
 
# ----------------------------------------------------------------------------------------------------------------------
#  IMPORT
# ----------------------------------------------------------------------------------------------------------------------
# RCAIDE Imports 
from RCAIDE.Framework.Core.Arrays  import atleast_2d_col 

# ----------------------------------------------------------------------------------------------------------------------
#  Initialize Differentials
# ----------------------------------------------------------------------------------------------------------------------
[docs] def differentials_dimensionless(segment): """ Initializes dimensionless differential operators for mission segment discretization Parameters ---------- segment : Segment The mission segment being analyzed Notes ----- This function sets up the numerical discretization operators used for solving differential equations in mission segments. It creates the control points and differential/integral operators based on the specified discretization method. The function performs the following steps: 1. Gets number of control points and discretization method 2. Generates control points and operators 3. Ensures proper dimensioning of arrays 4. Stores results in segment numerics **Required Segment State Variables** state.numerics: - number_of_control_points : int Number of points for discretization - discretization_method : function Method to generate discretization operators **Generated Operators** numerics.dimensionless: - control_points : array Normalized points for evaluation - differentiate : array Differentiation operator matrix - integrate : array Integration operator matrix **Major Assumptions** * Valid discretization method provided * Number of control points > 1 * Method generates consistent operators Returns ------- None Updates segment state directly See Also -------- RCAIDE.Framework.Core.Arrays RCAIDE.Framework.Mission.Segments """ # unpack numerics = segment.state.numerics N = numerics.number_of_control_points discretization_method = numerics.discretization_method # get operators x,D,I = discretization_method(N,**numerics) x = atleast_2d_col(x) # pack numerics.dimensionless.control_points = x numerics.dimensionless.differentiate = D numerics.dimensionless.integrate = I return