:py:mod:`BladeAD.utils.var_groups` ================================== .. py:module:: BladeAD.utils.var_groups Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: BladeAD.utils.var_groups.AircaftStates BladeAD.utils.var_groups.AtmosStates BladeAD.utils.var_groups.RotorAnalysisInputs BladeAD.utils.var_groups.RotorAnalysisOutputs BladeAD.utils.var_groups.RotorMeshParameters .. py:class:: AircaftStates Bases: :py:obj:`csdl_alpha.VariableGroup` Data class for aircraft states. :Parameters: **u** : Union[float, int, csdl.Variable, np.ndarray] u velocity component **v** : Union[float, int, csdl.Variable, np.ndarray] v velocity component **w** : Union[float, int, csdl.Variable, np.ndarray] w velocity component **p** : Union[float, int, csdl.Variable, np.ndarray] p angular velocity component (roll rate) **q** : Union[float, int, csdl.Variable, np.ndarray] q angular velocity component (pitch rate) **r** : Union[float, int, csdl.Variable, np.ndarray] r angular velocity component (yaw rate) **phi** : Union[float, int, csdl.Variable, np.ndarray] phi euler angle **theta** : Union[float, int, csdl.Variable, np.ndarray] theta euler angle **psi** : Union[float, int, csdl.Variable, np.ndarray] psi euler angle **x** : Union[float, int, csdl.Variable, np.ndarray] x position (not used in rotor analysis) **y** : Union[float, int, csdl.Variable, np.ndarray] y position (not used in rotor analysis) **z** : Union[float, int, csdl.Variable, np.ndarray] z position (not used in rotor analysis) .. !! processed by numpydoc !! .. py:attribute:: p :type: Union[float, int, csdl_alpha.Variable, numpy.ndarray] :value: 0 .. py:attribute:: phi :type: Union[float, int, csdl_alpha.Variable, numpy.ndarray] :value: 0 .. py:attribute:: psi :type: Union[float, int, csdl_alpha.Variable, numpy.ndarray] :value: 0 .. py:attribute:: q :type: Union[float, int, csdl_alpha.Variable, numpy.ndarray] :value: 0 .. py:attribute:: r :type: Union[float, int, csdl_alpha.Variable, numpy.ndarray] :value: 0 .. py:attribute:: theta :type: Union[float, int, csdl_alpha.Variable, numpy.ndarray] :value: 0 .. py:attribute:: u :type: Union[float, int, csdl_alpha.Variable, numpy.ndarray] :value: 0 .. py:attribute:: v :type: Union[float, int, csdl_alpha.Variable, numpy.ndarray] :value: 0 .. py:attribute:: w :type: Union[float, int, csdl_alpha.Variable, numpy.ndarray] :value: 0 .. py:attribute:: x :type: Union[float, int, csdl_alpha.Variable, numpy.ndarray] :value: 0 .. py:attribute:: y :type: Union[float, int, csdl_alpha.Variable, numpy.ndarray] :value: 0 .. py:attribute:: z :type: Union[float, int, csdl_alpha.Variable, numpy.ndarray] :value: 0 .. py:class:: AtmosStates Bases: :py:obj:`csdl_alpha.VariableGroup` Data class for atmospheric states. Default values are for sea-level. :Parameters: **density** : Union[float, int, csdl.Variable] Density of the atmosphere (kg/m^3) **speed_of_sound** : Union[float, int, csdl.Variable] Speed of sound (m/s) **temperature** : Union[float, int, csdl.Variable] Temperature (K) **pressure** : Union[float, int, csdl.Variable] Pressure (Pa) **dynamic_viscosity** : Union[float, int, csdl.Variable] Dynamic viscosity (Pa.s) .. !! processed by numpydoc !! .. py:attribute:: density :type: Union[float, int, csdl_alpha.Variable] :value: 1.22518316 .. py:attribute:: dynamic_viscosity :type: Union[float, int, csdl_alpha.Variable] :value: 1.735e-05 .. py:attribute:: pressure :type: Union[float, int, csdl_alpha.Variable] :value: 101325 .. py:attribute:: speed_of_sound :type: Union[float, int, csdl_alpha.Variable] :value: 343.0 .. py:attribute:: temperature :type: Union[float, int, csdl_alpha.Variable] :value: 288.16 .. py:class:: RotorAnalysisInputs Bases: :py:obj:`csdl_alpha.VariableGroup` Rotor analysis inputs data class. :Parameters: **rpm** : csdl.Variable The rpm of the rotor **mesh_velocity** : csdl.Variable The mesh velocity (u_x, u_y, u_z) of the thrust origin **mesh_parameters** : RotorMeshParameters Instance of of RotorMeshParameters that stores information about the rotor geometry **atmos_states** : AtmosStates(), optional Instance of AtmosStates data class, by default AtmosStates() (states at sea-level) **ac_states** : AcStates(), optional Instance of AcStates() (if provided thrust will be decomposed into forces in the body-fixed reference frame based on aircraft orientation), by default None **theta_0** : Union[csdl.Variable, int, float], optional Collective pitch at r/R=0.75; zero-th harmonic of blade pitch motion (radians); note that it is up to the user to specify the blade twist such that it is zero at r/R=0.75, by default 0 **theta_1_c** : Union[csdl.Variable, int, float], optional Cyclic pitch angle: cosine coefficient for first harmonic (radians), by default 0 **theta_1_s** : Union[csdl.Variable, int, float], optional Cyclic pitch angle: sine coefficient for first harmonic (radians), by default 0 **xi_0** : Union[csdl.Variable, int, float], optional Mean lag angle; zero-th harmonic of blade lag motion (radians), by default 0 **xi_1_c** : Union[csdl.Variable, int, float], optional Cyclic lag angle; cosine coefficient for first harmonic (radians), by default 0 **xi_1_s** : Union[csdl.Variable, int, float], optional Cyclic lag angle; sin coefficient for first harmonic (radians), by default 0 .. !! processed by numpydoc !! .. py:attribute:: ac_states .. py:attribute:: atmos_states .. py:attribute:: mesh_parameters :type: RotorMeshParameters .. py:attribute:: mesh_velocity :type: csdl_alpha.Variable .. py:attribute:: rpm :type: csdl_alpha.Variable .. py:attribute:: theta_0 :type: Union[csdl_alpha.Variable, int, float] :value: 0 .. py:attribute:: theta_1_c :type: Union[csdl_alpha.Variable, int, float] :value: 0 .. py:attribute:: theta_1_s :type: Union[csdl_alpha.Variable, int, float] :value: 0 .. py:attribute:: xi_0 :type: Union[csdl_alpha.Variable, int, float] :value: 0 .. py:attribute:: xi_1_c :type: Union[csdl_alpha.Variable, int, float] :value: 0 .. py:attribute:: xi_1_s :type: Union[csdl_alpha.Variable, int, float] :value: 0 .. py:class:: RotorAnalysisOutputs Bases: :py:obj:`csdl_alpha.VariableGroup` Rotor analysis outputs data class. :Parameters: **axial_induced_velocity** : csdl.Variable Axial induced velocity (at rotor disk) **tangential_induced_velocity** : csdl.Variable Tangential induced velocity (at rotor disk) **sectional_thrust** : csdl.Variable Sectional thrust dT (N) **sectional_torque** : csdl.Variable Sectional torque dQ (N.m) **sectional_drag** : csdl.Variable Sectional drag dD (N) **total_thrust** : csdl.Variable Total thrust (N) **total_torque** : csdl.Variable Total torque (N.m) **total_power** : csdl.Variable Total power (W) **efficiency** : csdl.Variable Efficiency **figure_of_merit** : csdl.Variable Figure of merit (hover efficiency metric) **thrust_coefficient** : csdl.Variable Thrust coefficient **torque_coefficient** : csdl.Variable Torque coefficient **power_coefficient** : csdl.Variable Power coefficient **residual** : csdl.Variable, optional Residual (if available), by default None **forces** : csdl.Variable, optional Forces (if available based on body-fixed reference frame specified by ACStates), by default None **moments** : csdl.Variable, optional Moments (if available based on body-fixed reference frame specified by ACStates) about specified reference point, by default None **sectional_inflow_angle** : csdl.Variable, optional Sectional inflow angle (if available), by default None .. !! processed by numpydoc !! .. py:attribute:: axial_induced_velocity :type: csdl_alpha.Variable .. py:attribute:: efficiency :type: csdl_alpha.Variable .. py:attribute:: figure_of_merit :type: csdl_alpha.Variable .. py:attribute:: forces :type: csdl_alpha.Variable .. py:attribute:: moments :type: csdl_alpha.Variable .. py:attribute:: power_coefficient :type: csdl_alpha.Variable .. py:attribute:: residual :type: csdl_alpha.Variable .. py:attribute:: sectional_drag :type: csdl_alpha.Variable .. py:attribute:: sectional_inflow_angle .. py:attribute:: sectional_thrust :type: csdl_alpha.Variable .. py:attribute:: sectional_torque :type: csdl_alpha.Variable .. py:attribute:: tangential_induced_velocity :type: csdl_alpha.Variable .. py:attribute:: thrust_coefficient :type: csdl_alpha.Variable .. py:attribute:: torque_coefficient :type: csdl_alpha.Variable .. py:attribute:: total_power :type: csdl_alpha.Variable .. py:attribute:: total_thrust :type: csdl_alpha.Variable .. py:attribute:: total_torque :type: csdl_alpha.Variable .. py:class:: RotorMeshParameters Bases: :py:obj:`csdl_alpha.VariableGroup` Data class for rotor mesh parameters. :Parameters: **thrust_vector** : Union[np.ndarray, csdl.Variable] Thrust vector **thrust_origin** : Union[np.ndarray, csdl.Variable] Thrust origin **chord_profile** : Union[np.ndarray, csdl.Variable] Chord profile (m) **twist_profile** : Union[np.ndarray, csdl.Variable] Twist profile (radians) **radius** : Union[float, int, csdl.Variable] Radius of the rotor (m) **num_radial** : int Number of radial nodes **num_azimuthal** : int Number of azimuthal nodes **num_blades** : int Number of blades **norm_hub_radius** : float Normalmized hub radius (default=0.2) .. !! processed by numpydoc !! .. py:attribute:: chord_profile :type: Union[numpy.ndarray, csdl_alpha.Variable] .. py:attribute:: norm_hub_radius :type: float :value: 0.2 .. py:attribute:: num_azimuthal :type: int .. py:attribute:: num_blades :type: int .. py:attribute:: num_radial :type: int .. py:attribute:: radius :type: Union[float, int, csdl_alpha.Variable] .. py:attribute:: thrust_origin :type: Union[numpy.ndarray, csdl_alpha.Variable] .. py:attribute:: thrust_vector :type: Union[numpy.ndarray, csdl_alpha.Variable] .. py:attribute:: twist_profile :type: Union[numpy.ndarray, csdl_alpha.Variable]