Source code for RCAIDE.Framework.Analyses.Vehicle
# RCAIDE/Framework/Analyses/Vehicle.py
#
#
# Created: Jul 2023, M. Clarke
# ----------------------------------------------------------------------------------------------------------------------
# IMPORT
# ----------------------------------------------------------------------------------------------------------------------
import RCAIDE
from .Analysis import Analysis
# ----------------------------------------------------------------------------------------------------------------------
# Vehicle
# ----------------------------------------------------------------------------------------------------------------------
[docs]
class Vehicle(Analysis.Container):
""" RCAIDE.Framework.Analyses.Vehicle()
The Vehicle Analyses Container Class
Assumptions:
None
Source:
N/A
"""
def __defaults__(self):
"""This sets the default analyses to be applied to the vehicle.
Assumptions:
None
Source:
N/A
Inputs:
None
Outputs:
None
Properties Used:
N/A
"""
self.aerodynamics = None
self.atmosphere = None
self.costs = None
self.energy = None
self.noise = None
self.emissions = None
self.planet = None
self.sizing = None
self.stability = None
self.weights = None
[docs]
def append(self,analysis):
"""This is used to add new analyses to the container.
Assumptions:
None
Source:
N/A
Inputs:
Analysis to be added
Outputs:
None
Properties Used:
N/A
"""
key = self.get_root(analysis)
self[key] = analysis
_analyses_map = None
[docs]
def __init__(self,*args,**kwarg):
"""This sets the initialization behavior of the vehicle analysis
container. Maps analysis paths to string keys.
Assumptions:
None
Source:
N/A
Inputs:
None
Outputs:
None
Properties Used:
N/A
"""
Analysis.Container.__init__(self,*args,**kwarg)
self._analyses_map = {
RCAIDE.Framework.Analyses.Weights.Weights : 'weights' ,
RCAIDE.Framework.Analyses.Aerodynamics.Aerodynamics : 'aerodynamics' ,
RCAIDE.Framework.Analyses.Stability.Stability : 'stability' ,
RCAIDE.Framework.Analyses.Energy.Energy : 'energy' ,
RCAIDE.Framework.Analyses.Atmospheric.Atmospheric : 'atmosphere' ,
RCAIDE.Framework.Analyses.Planets.Planet : 'planet' ,
RCAIDE.Framework.Analyses.Noise.Noise : 'noise' ,
RCAIDE.Framework.Analyses.Emissions.Emissions : 'emissions' ,
}
[docs]
def get_root(self,analysis):
""" This is used to determine the root of the analysis path associated
with a particular analysis key by the analysis map.
Assumptions:
None
Source:
N/A
Inputs:
Analysis key to be checked
Outputs:
Path root of analysis
Properties Used:
N/A
"""
for analysis_type, analysis_root in self._analyses_map.items():
if isinstance(analysis,analysis_type):
break
else:
raise Exception("Unable to place analysis type %s" % analysis.typestring())
return analysis_root