diff --git a/.github/workflows/integrationtests.yml b/.github/workflows/integrationtests.yml index 1c02046cb..72ca18076 100755 --- a/.github/workflows/integrationtests.yml +++ b/.github/workflows/integrationtests.yml @@ -62,17 +62,20 @@ jobs: - name: Install SU2 shell: bash -l {0} - run: installation/Ubuntu/install_su2.sh + run: installation/Ubuntu/install_su2_without_mpi.sh - name: Install Pentagrow shell: bash -l {0} run: installation/Ubuntu/install_pentagrow.sh - + + - name: Add src to PYTHONPATH + run: echo "PYTHONPATH=$PYTHONPATH:$(pwd)/src" >> $GITHUB_ENV + - name: Run integration tests shell: bash -l {0} run: | source ~/.bashrc - pytest -v ./tests --cov=ceasiompy/ --cov-report xml:coverage.xml -m "not gui" + pytest -v ./tests --cov=ceasiompy --cov-report xml:coverage.xml -m "not gui" - name: Upload coverage to Codecov uses: codecov/codecov-action@v3.1.0 diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml index e25bc0605..acd519224 100755 --- a/.github/workflows/unittests.yml +++ b/.github/workflows/unittests.yml @@ -56,9 +56,13 @@ jobs: - name: Install libGLU run: sudo apt-get install -y libglu1-mesa-dev + - name: Add src to PYTHONPATH + run: echo "PYTHONPATH=$PYTHONPATH:$(pwd)/src" >> $GITHUB_ENV + - name: Run unit tests shell: bash -l {0} - run: pytest -v ./ceasiompy --cov=ceasiompy/ --cov-report xml:coverage.xml + run: + pytest -v src/ceasiompy --cov=ceasiompy --cov-report xml:coverage.xml - name: Upload coverage to Codecov uses: codecov/codecov-action@v3.1.0 diff --git a/.gitignore b/.gitignore index 40e26474c..427dacca2 100755 --- a/.gitignore +++ b/.gitignore @@ -185,4 +185,6 @@ aircraft_loads.csv /ceasiompy/Database/databases/ceasiompy.db ceasiompy.cfg -ceasiompy.log \ No newline at end of file +ceasiompy.log +history.csv +docker \ No newline at end of file diff --git a/CEASIOMpy_docker_Installation b/CEASIOMpy_docker_Installation index 4eb82d2b2..6b6719b95 100644 --- a/CEASIOMpy_docker_Installation +++ b/CEASIOMpy_docker_Installation @@ -1,19 +1,23 @@ # With this Dockerfile, you are building a Docker image for -# your LOCAL CEASIOMpy on Ubuntu 22.04, with system dependencies and Miniconda. +# your LOCAL CEASIOMpy on Ubuntu latest, with system dependencies and Miniconda. # Use the commands below to build the Docker image, # and then to run the Docker container. -FROM ubuntu:22.04 +FROM ubuntu:24.04 RUN apt-get update +RUN apt-get install -y libglu1-mesa-dev + +RUN apt update && apt upgrade -y + # Install apt-utils -RUN apt-get install -y apt-utils +RUN apt-get install -y apt-utils # Install system dependencies RUN apt-get install -y --no-install-recommends \ - git curl wget sudo unzip build-essential libtbb2 libtbb-dev libxrender1 libxcursor1 libxinerama1 libxft2 libxt6 \ - libgl1-mesa-glx libglu1-mesa libegl1-mesa libosmesa6 xvfb ca-certificates && \ + git curl wget sudo unzip build-essential libtbbmalloc2 libtbb-dev libxrender1 libxcursor1 libxinerama1 libxft2 libxt6 \ + libgl1 libglu1-mesa libegl1 libosmesa6 xvfb ca-certificates && \ rm -rf /var/lib/apt/lists/* # Install Miniconda @@ -23,20 +27,24 @@ RUN curl -fsSL https://github.com/conda-forge/miniforge/releases/latest/download rm /tmp/miniforge.sh ENV PATH=$CONDA_DIR/bin:$PATH +RUN apt-get install -y + # Create the necessary directory structure WORKDIR /CEASIOMpy/installation/Ubuntu/ -# Download only the required installation scripts -RUN wget https://raw.githubusercontent.com/cfsengineering/CEASIOMpy/main/installation/Ubuntu/install_pyavl.sh && \ - wget https://raw.githubusercontent.com/cfsengineering/CEASIOMpy/main/installation/Ubuntu/install_su2.sh && \ - wget https://raw.githubusercontent.com/cfsengineering/CEASIOMpy/main/installation/Ubuntu/install_pentagrow.sh +# Copy the required installation scripts from local context +COPY ./installation/Ubuntu/install_pyavl.sh . +COPY ./installation/Ubuntu/install_su2_with_mpi.sh . +# COPY installation/Ubuntu/install_pentagrow.sh . # Make the scripts executable RUN chmod +x install_*.sh +WORKDIR /CEASIOMpy + # Run the installation scripts -RUN ./install_pyavl.sh -RUN ./install_su2.sh +RUN installation/Ubuntu/install_pyavl.sh +RUN installation/Ubuntu/install_su2_with_mpi.sh # Go from /CEASIOMpy/INSTALLDIR to /INSTALLDIR RUN mkdir -p /INSTALLDIR && \ @@ -45,19 +53,15 @@ RUN mkdir -p /INSTALLDIR && \ # Install xvfb and other graphical display dependencies for Ubuntu RUN apt-get update && apt-get install -y --no-install-recommends \ - xvfb libgl1-mesa-glx libglu1-mesa libegl1-mesa libosmesa6 libxt6 && \ + xvfb libgl1 libglu1-mesa libegl1 libosmesa6 libxt6 && \ rm -rf /var/lib/apt/lists/* # Install system dependencies RUN apt-get update && apt-get install -y --no-install-recommends \ - g++ libtbb2 libtbb-dev libxrender1 libxcursor1 libxinerama1 libxft2 libxt6 \ - libgl1-mesa-glx libglu1-mesa libegl1-mesa libosmesa6 xvfb && \ + g++ libtbbmalloc2 libtbb-dev libxrender1 libxcursor1 libxinerama1 libxft2 libxt6 \ + libglu1-mesa libosmesa6 xvfb && \ rm -rf /var/lib/apt/lists/* -# Disable Streamlit watchdog and use polling -#ENV STREAMLIT_GLOBAL_DISABLE_WATCHDOG=1 -#ENV WATCHDOG_USE_POLLER=1 - # Set the DISPLAY environment variable ENV DISPLAY=:99 ENV LIBGL_ALWAYS_SOFTWARE=1 @@ -77,7 +81,7 @@ RUN mkdir -p /CEASIOMpy WORKDIR /CEASIOMpy # Add software paths to the PATH environment variable -ENV PATH="/CEASIOMpy/INSTALLDIR/SU2-v8.1.0-linux64-mpi/bin:/CEASIOMpy/INSTALLDIR/avl:$PATH" +ENV PATH="/CEASIOMpy/INSTALLDIR/bin:/CEASIOMpy/INSTALLDIR/avl:$PATH" # Get the required files for installing the conda environment RUN wget https://raw.githubusercontent.com/cfsengineering/CEASIOMpy/main/setup.py -O /CEASIOMpy/setup.py && \ @@ -94,16 +98,14 @@ COPY src /CEASIOMpy/src # Create the Conda environment from the environment.yml file RUN /bin/bash -c "source $CONDA_DIR/etc/profile.d/conda.sh && conda env create -f environment.yml" -# Activate the Conda environment and install CEASIOMpy -RUN /bin/bash -c "source $CONDA_DIR/etc/profile.d/conda.sh && conda activate ceasiompy && pip install -e ." - # Automatically activate the Conda environment in new shells RUN echo "source $CONDA_DIR/etc/profile.d/conda.sh" >> ~/.bashrc && \ echo "conda activate ceasiompy" >> ~/.bashrc && \ - echo "python src/bin/ceasiompy_run --gui" >> ~/.bashrc + echo "pip install -e ." >> ~/.bashrc && \ + echo "ceasiompy_run --gui" >> ~/.bashrc # Move the content of /INSTALLDIR to the mounted /CEASIOMpy/INSTALLDIR folder at runtime -CMD ["/bin/bash", "-c", "rm -rf /CEASIOMpy/INSTALLDIR && mkdir -p /CEASIOMpy/INSTALLDIR && mv /INSTALLDIR/* /CEASIOMpy/INSTALLDIR/ && exec bash"] +# CMD ["/bin/bash", "-c", "rm -rf /CEASIOMpy/INSTALLDIR && mkdir -p /CEASIOMpy/INSTALLDIR && mv /INSTALLDIR/* /CEASIOMpy/INSTALLDIR/ && exec bash"] # Now you just need click on: Networ URL diff --git a/ceasiompy/AeroFrame/tests/ToolOutput/.keep b/ceasiompy/AeroFrame/tests/ToolOutput/.keep deleted file mode 100755 index 8d1c8b69c..000000000 --- a/ceasiompy/AeroFrame/tests/ToolOutput/.keep +++ /dev/null @@ -1 +0,0 @@ - diff --git a/ceasiompy/CPACS2SUMO/cpacs2sumo.py b/ceasiompy/CPACS2SUMO/cpacs2sumo.py deleted file mode 100755 index 2532890e0..000000000 --- a/ceasiompy/CPACS2SUMO/cpacs2sumo.py +++ /dev/null @@ -1,947 +0,0 @@ -""" -CEASIOMpy: Conceptual Aircraft Design Software - -Developed by CFS ENGINEERING, 1015 Lausanne, Switzerland - -Script to convert CPACS file geometry into SUMO geometry - -| Author : Aidan Jungo -| Creation: 2017-03-03 - -TODO: - * Write some documentation and tutorial - * Improve testing script - * Use both for wing and fuselage, as they define which - part of the fuselage/wing should be built - * Use 'sumo_str_format' function everywhere - * Improve the class data structure of Engine - * Use class data structure for fuselage and wings -""" - -# ============================================================================== -# IMPORTS -# ============================================================================== - -import math -import subprocess - -import numpy as np - -from ceasiompy.utils.mathsfunctions import euler2fix -from ceasiompy.utils.ceasiompyutils import call_main, bool_ -from ceasiompy.CPACS2SUMO.func.getprofile import get_profile_coord - -from cpacspy.cpacsfunctions import ( - get_value, - open_tixi, - create_branch, - get_value_or_default, -) -from ceasiompy.utils.geometryfunctions import ( - check_if_rotated, - elements_number, - get_positionings, - convert_fuselage_profiles, - corrects_airfoil_profile, -) -from ceasiompy.CPACS2SUMO.func.sumofunctions import ( - add_wing_cap, - sumo_str_format, - sumo_mirror_copy, - sumo_add_engine_bc, - sumo_add_nacelle_lip, -) - -from pathlib import Path -from cpacspy.cpacspy import CPACS -from tixi3.tixi3wrapper import Tixi3 -from ceasiompy.CPACS2SUMO.func.engineclasses import Engine - -from ceasiompy.utils.generalclasses import ( - Transformation, - Point, -) - -from typing import ( - List, - Tuple, -) - -from ceasiompy import log - -from ceasiompy.utils.commonxpaths import ( - WINGS_XPATH, - PYLONS_XPATH, - ENGINES_XPATH, - FUSELAGES_XPATH, -) - -from ceasiompy.CPACS2SUMO import ( - MODULE_NAME, - MODULE_DIR, - CPACS2SUMO_SUMO_GUI_XPATH, - CPACS2SUMOFILE_XPATH, - CPACS2SUMO_INCLUDE_PYLON_XPATH, - CPACS2SUMO_INCLUDE_ENGINE_XPATH, -) - -# ================================================================================================= -# FUNCTIONS -# ================================================================================================= - - -def normalize_profile(tixi: Tixi3, prof_uid: str) -> Tuple[List[float], List[float]]: - _, prof_vect_y, prof_vect_z = get_profile_coord(tixi, prof_uid) - prof_size_y = (max(prof_vect_y) - min(prof_vect_y)) / 2 - prof_size_z = (max(prof_vect_z) - min(prof_vect_z)) / 2 - - prof_vect_y = [(y / prof_size_y) - 1 for y in prof_vect_y] - prof_vect_z = [(z / prof_size_z) - 1 for z in prof_vect_z] - - return prof_vect_y, prof_vect_z, prof_size_y, prof_size_z - - -def calculate_body_frame_center( - elem_transf, sec_transf, fus_transf, - pos_x_list, pos_y_list, pos_z_list, i_sec -) -> Tuple[float, float, float]: - body_frm_center_x = ( - elem_transf.translation.x + sec_transf.translation.x + pos_x_list[i_sec] - ) * fus_transf.scaling.x - body_frm_center_y = ( - elem_transf.translation.y * sec_transf.scaling.y + sec_transf.translation.y - + pos_y_list[i_sec] - ) * fus_transf.scaling.y - body_frm_center_z = ( - elem_transf.translation.z * sec_transf.scaling.z + sec_transf.translation.z - + pos_z_list[i_sec] - ) * fus_transf.scaling.z - - return body_frm_center_x, body_frm_center_y, body_frm_center_z - - -def deal_with_elements( - tixi: Tixi3, sumo, - fus_xpath, body_xpath, - i_sec, - pos_x_list, pos_y_list, pos_z_list, - fus_transf: Transformation, -) -> None: - sec_xpath = fus_xpath + "/sections/section[" + str(i_sec + 1) + "]" - sec_uid = tixi.getTextAttribute(sec_xpath, "uID") - - sec_transf = Transformation() - sec_transf.get_cpacs_transf(tixi, sec_xpath) - - check_if_rotated(sec_transf.rotation, sec_uid) - - # Elements - elem_cnt = elements_number(tixi, sec_xpath + "/elements", "element", logg=False) - - for i_elem in range(elem_cnt): - ( - elem_transf, - prof_size_y, prof_size_z, - prof_vect_y, prof_vect_z, - ) = convert_fuselage_profiles( - tixi, sec_xpath, i_sec, i_elem, pos_y_list, pos_z_list - ) - - body_frm_center_x, body_frm_center_y, body_frm_center_z = calculate_body_frame_center( - elem_transf, sec_transf, fus_transf, - pos_x_list, pos_y_list, pos_z_list, i_sec - ) - - body_frm_height = ( - prof_size_z - * 2 - * elem_transf.scaling.z - * sec_transf.scaling.z - * fus_transf.scaling.z - ) - - body_frm_height = max(body_frm_height, 0.005) - body_frm_width = ( - prof_size_y - * 2 - * elem_transf.scaling.y - * sec_transf.scaling.y - * fus_transf.scaling.y - ) - body_frm_width = max(body_frm_width, 0.005) - - # Convert the profile points in the SMX format - prof_str = "" - teta_list, teta_half = [], [] - prof_vect_y_half, prof_vect_z_half = [], [] - check_max, check_min = 0, 0 - - # Use polar angle to keep point in the correct order - for i, item in enumerate(prof_vect_y): - teta_list.append(math.atan2(prof_vect_z[i], item)) - - for t, teta in enumerate(teta_list): - HALF_PI = math.pi / 2 - EPSILON = 0.04 - - if abs(teta) <= HALF_PI - EPSILON: - teta_half.append(teta) - prof_vect_y_half.append(prof_vect_y[t]) - prof_vect_z_half.append(prof_vect_z[t]) - elif abs(teta) < HALF_PI + EPSILON: - # Check if not the last element of the list - if not t == len(teta_list) - 1: - next_val = prof_vect_z[t + 1] - # Check if it is better to keep next point - if not abs(next_val) > abs(prof_vect_z[t]): - if prof_vect_z[t] > 0 and not check_max: - teta_half.append(teta) - # Force y=0, to get symmetrical profile - prof_vect_y_half.append(0) - prof_vect_z_half.append(prof_vect_z[t]) - check_max = 1 - elif prof_vect_z[t] < 0 and not check_min: - teta_half.append(teta) - # Force y=0, to get symmetrical profile - prof_vect_y_half.append(0) - prof_vect_z_half.append(prof_vect_z[t]) - check_min = 1 - - # Sort points by teta value, to fit the SUMO profile format - teta_half, prof_vect_z_half, prof_vect_y_half = ( - list(t) - for t in zip(*sorted(zip(teta_half, prof_vect_z_half, prof_vect_y_half))) - ) - - # Write profile as a string and add y=0 point at the beginning - # and at the end to ensure symmetry - if not check_min: - prof_str += str(0) + " " + str(prof_vect_z_half[0]) + " " - for i, _ in enumerate(prof_vect_z_half): - prof_str += ( - str(round(prof_vect_y_half[i], 4)) - + " " - + str(round(prof_vect_z_half[i], 4)) - + " " - ) - if not check_max: - prof_str += str(0) + " " + str(prof_vect_z_half[i]) + " " - - # Write the SUMO file - sumo.addTextElementAtIndex( - body_xpath, "BodyFrame", prof_str, i_sec + 1) - frame_xpath = body_xpath + "/BodyFrame[" + str(i_sec + 1) + "]" - - body_center_str = sumo_str_format( - body_frm_center_x, - body_frm_center_y, - body_frm_center_z, - ) - - sumo.addTextAttribute(frame_xpath, "center", str(body_center_str)) - sumo.addTextAttribute(frame_xpath, "height", str(body_frm_height)) - sumo.addTextAttribute(frame_xpath, "width", str(body_frm_width)) - sumo.addTextAttribute(frame_xpath, "name", str(sec_uid)) - - -def convert_fuselages(tixi: Tixi3, sumo: Tixi3) -> None: - """ - Convert fuselage from CPACS to SUMO. - - Args: - tixi (Tixi3): TIXI Handle of the CPACS file. - sumo (Tixi3): TIXI Handle of the SUMO file. - - """ - - element = "fuselage" - - fus_cnt = elements_number(tixi, FUSELAGES_XPATH, element) - - for i_fus in range(fus_cnt): - fus_xpath = FUSELAGES_XPATH + "/fuselage[" + str(i_fus + 1) + "]" - fus_uid = tixi.getTextAttribute(fus_xpath, "uID") - fus_transf = Transformation() - fus_transf.get_cpacs_transf(tixi, fus_xpath) - - # Create new body (SUMO) - sumo.createElementAtIndex("/Assembly", "BodySkeleton", i_fus + 1) - body_xpath = "/Assembly/BodySkeleton[" + str(i_fus + 1) + "]" - - sumo.addTextAttribute(body_xpath, "akimatg", "false") - sumo.addTextAttribute(body_xpath, "name", fus_uid) - - body_tansf = Transformation() - body_tansf.translation = fus_transf.translation - - # Convert angles - body_tansf.rotation = euler2fix(fus_transf.rotation) - - # Add body rotation - body_rot_str = sumo_str_format( - math.radians(body_tansf.rotation.x), - math.radians(body_tansf.rotation.y), - math.radians(body_tansf.rotation.z), - ) - - sumo.addTextAttribute(body_xpath, "rotation", body_rot_str) - - # Add body origin - body_ori_str = sumo_str_format( - body_tansf.translation.x, - body_tansf.translation.y, - body_tansf.translation.z, - ) - - sumo.addTextAttribute(body_xpath, "origin", body_ori_str) - - sec_cnt, pos_x_list, pos_y_list, pos_z_list = get_positionings( - tixi, fus_xpath, element) - - for i_sec in range(sec_cnt): - deal_with_elements( - tixi, sumo, - fus_xpath, body_xpath, - i_sec, - pos_x_list, pos_y_list, pos_z_list, - fus_transf - ) - - # Fuselage symmetry (mirror copy) - if tixi.checkAttribute(fus_xpath, "symmetry"): - if tixi.getTextAttribute(fus_xpath, "symmetry") == "x-z-plane": - sumo_mirror_copy(sumo, body_xpath, fus_uid, False) - - # To remove the default BodySkeleton - if fus_cnt == 0: - sumo.removeElement("/Assembly/BodySkeleton") - else: - sumo.removeElement("/Assembly/BodySkeleton[" + str(fus_cnt + 1) + "]") - - -def convert_wings(tixi: Tixi3, sumo: Tixi3) -> None: - """ - Convert wings from CPACS to SUMO. - - Args: - tixi (Tixi3): TIXI Handle of the CPACS file. - sumo (Tixi3): TIXI Handle of the SUMO file. - - """ - - element = "wing" - - wing_cnt = elements_number(tixi, WINGS_XPATH, element) - - for i_wing in range(wing_cnt): - wing_xpath = WINGS_XPATH + "/wing[" + str(i_wing + 1) + "]" - wing_uid = tixi.getTextAttribute(wing_xpath, "uID") - wing_transf = Transformation() - wing_transf.get_cpacs_transf(tixi, wing_xpath) - - # Create new wing (SUMO) - sumo.createElementAtIndex("/Assembly", "WingSkeleton", i_wing + 1) - wg_sk_xpath = "/Assembly/WingSkeleton[" + str(i_wing + 1) + "]" - - sumo.addTextAttribute(wg_sk_xpath, "akimatg", "false") - sumo.addTextAttribute(wg_sk_xpath, "name", wing_uid) - - # Create a class for the transformation of the WingSkeleton - wg_sk_tansf = Transformation() - - # Convert WingSkeleton rotation and add it to SUMO - wg_sk_tansf.rotation = euler2fix(wing_transf.rotation) - wg_sk_rot_str = sumo_str_format( - math.radians(wg_sk_tansf.rotation.x), - math.radians(wg_sk_tansf.rotation.y), - math.radians(wg_sk_tansf.rotation.z), - ) - sumo.addTextAttribute(wg_sk_xpath, "rotation", wg_sk_rot_str) - - # Add WingSkeleton origin - wg_sk_tansf.translation = wing_transf.translation - wg_sk_ori_str = sumo_str_format( - wg_sk_tansf.translation.x, - wg_sk_tansf.translation.y, - wg_sk_tansf.translation.z, - ) - - sumo.addTextAttribute(wg_sk_xpath, "origin", wg_sk_ori_str) - - if tixi.checkAttribute(wing_xpath, "symmetry"): - if tixi.getTextAttribute(wing_xpath, "symmetry") == "x-z-plane": - sumo.addTextAttribute( - wg_sk_xpath, "flags", "autosym,detectwinglet") - else: - sumo.addTextAttribute(wg_sk_xpath, "flags", "detectwinglet") - - sec_cnt, pos_x_list, pos_y_list, pos_z_list = get_positionings( - tixi, wing_xpath, "wing") - - wing_sec_index = 1 - - for i_sec in reversed(range(sec_cnt)): - sec_xpath = wing_xpath + \ - "/sections/section[" + str(i_sec + 1) + "]" - sec_uid = tixi.getTextAttribute(sec_xpath, "uID") - sec_transf = Transformation() - sec_transf.get_cpacs_transf(tixi, sec_xpath) - - # Elements - elem_cnt = tixi.getNamedChildrenCount( - sec_xpath + "/elements", "element") - - if elem_cnt > 1: - log.warning( - f"Sections {sec_uid} contains multiple element," - " it could be an issue for the conversion to SUMO!" - ) - - for i_elem in range(elem_cnt): - elem_xpath = sec_xpath + \ - "/elements/element[" + str(i_elem + 1) + "]" - elem_transf = Transformation() - elem_transf.get_cpacs_transf(tixi, elem_xpath) - - # Get wing profile (airfoil) - prof_uid = tixi.getTextElement(elem_xpath + "/airfoilUID") - prof_vect_x, prof_vect_y, prof_vect_z = get_profile_coord( - tixi, prof_uid) - - # Convert lists to NumPy arrays - prof_vect_x = np.array(prof_vect_x) - prof_vect_y = np.array(prof_vect_y) - prof_vect_z = np.array(prof_vect_z) - - # Apply scaling - prof_vect_x *= elem_transf.scaling.x * \ - sec_transf.scaling.x * wing_transf.scaling.x - prof_vect_y *= elem_transf.scaling.y * \ - sec_transf.scaling.y * wing_transf.scaling.y - prof_vect_z *= elem_transf.scaling.z * \ - sec_transf.scaling.z * wing_transf.scaling.z - - wg_sec_chord = corrects_airfoil_profile( - prof_vect_x, prof_vect_y, prof_vect_z - ) - - # SUMO variable for WingSection - wg_sec_center_x = ( - elem_transf.translation.x + sec_transf.translation.x + pos_x_list[i_sec] - ) * wing_transf.scaling.x - wg_sec_center_y = ( - elem_transf.translation.y * sec_transf.scaling.y + sec_transf.translation.y - + pos_y_list[i_sec] - ) * wing_transf.scaling.y - wg_sec_center_z = ( - elem_transf.translation.z * sec_transf.scaling.z - + sec_transf.translation.z - + pos_z_list[i_sec] - ) * wing_transf.scaling.z - - # Add roation from element and sections - # Adding the two angles: Maybe not work in every case!!! - add_rotation = Point() - add_rotation.x = elem_transf.rotation.x + sec_transf.rotation.x - add_rotation.y = elem_transf.rotation.y + sec_transf.rotation.y - add_rotation.z = elem_transf.rotation.z + sec_transf.rotation.z - - # Get Section rotation for SUMO - wg_sec_rot = euler2fix(add_rotation) - wg_sec_dihed = math.radians(wg_sec_rot.x) - wg_sec_twist = math.radians(wg_sec_rot.y) - wg_sec_yaw = math.radians(wg_sec_rot.z) - - # Convert point list into string - prof_str = "" - - # Airfoil points order : should be from TE (1 0) to LE (0 0) - # then TE(1 0), but not reverse way. - - # to avoid double zero, not accepted by SUMO - prof_str += ( - str(round(prof_vect_x[0], 4)) + " " + str(round(prof_vect_z[0], 4)) + " " - ) - - for i in range(1, len(prof_vect_x)): - dx_squared = (prof_vect_x[i] - prof_vect_x[i - 1]) ** 2 - dz_squared = (prof_vect_z[i] - prof_vect_z[i - 1]) ** 2 - - if dx_squared + dz_squared > 1e-8: - prof_str += f"{round(prof_vect_x[i], 4)} {round(prof_vect_z[i], 4)} " - - sumo.addTextElementAtIndex( - wg_sk_xpath, "WingSection", prof_str, wing_sec_index) - wg_sec_xpath = wg_sk_xpath + \ - "/WingSection[" + str(wing_sec_index) + "]" - sumo.addTextAttribute(wg_sec_xpath, "airfoil", prof_uid) - sumo.addTextAttribute(wg_sec_xpath, "name", sec_uid) - wg_sec_center_str = sumo_str_format( - wg_sec_center_x, - wg_sec_center_y, - wg_sec_center_z, - ) - - sumo.addTextAttribute( - wg_sec_xpath, "center", wg_sec_center_str) - sumo.addTextAttribute(wg_sec_xpath, "chord", str(wg_sec_chord)) - sumo.addTextAttribute( - wg_sec_xpath, "dihedral", str(wg_sec_dihed)) - sumo.addTextAttribute(wg_sec_xpath, "twist", str(wg_sec_twist)) - sumo.addTextAttribute(wg_sec_xpath, "yaw", str(wg_sec_yaw)) - sumo.addTextAttribute(wg_sec_xpath, "napprox", "-1") - sumo.addTextAttribute(wg_sec_xpath, "reversed", "false") - sumo.addTextAttribute(wg_sec_xpath, "vbreak", "false") - - wing_sec_index += 1 - - # Add Wing caps - add_wing_cap(sumo, wg_sk_xpath) - - -def convert_enginepylons(tixi: Tixi3, sumo: Tixi3) -> None: - """ - Convert engine pylon(s) from CPACS to SUMO. - - Args: - tixi (Tixi3): TIXI Handle of the CPACS file. - sumo (Tixi3): TIXI Handle of the SUMO file. - - """ - - element = "enginePylon" - - include_pylon = get_value_or_default(tixi, CPACS2SUMO_INCLUDE_PYLON_XPATH, False) - if include_pylon: - pylon_cnt = elements_number(tixi, PYLONS_XPATH, element) - else: - pylon_cnt = 0 - - for i_pylon in range(pylon_cnt): - pylon_xpath = PYLONS_XPATH + "/enginePylon[" + str(i_pylon + 1) + "]" - pylon_uid = tixi.getTextAttribute(pylon_xpath, "uID") - pylon_transf = Transformation() - pylon_transf.get_cpacs_transf(tixi, pylon_xpath) - - # Create new wing (SUMO) Pylons will be modeled as a wings - sumo.createElementAtIndex("/Assembly", "WingSkeleton", i_pylon + 1) - wg_sk_xpath = "/Assembly/WingSkeleton[" + str(i_pylon + 1) + "]" - - sumo.addTextAttribute(wg_sk_xpath, "akimatg", "false") - sumo.addTextAttribute(wg_sk_xpath, "name", pylon_uid) - - # Create a class for the transformation of the WingSkeleton - wg_sk_tansf = Transformation() - - # Convert WingSkeleton rotation and add it to SUMO - wg_sk_tansf.rotation = euler2fix(pylon_transf.rotation) - - wg_sk_rot_str = sumo_str_format( - math.radians(wg_sk_tansf.rotation.x), - math.radians(wg_sk_tansf.rotation.y), - math.radians(wg_sk_tansf.rotation.z), - ) - sumo.addTextAttribute(wg_sk_xpath, "rotation", wg_sk_rot_str) - - # Add WingSkeleton origin - wg_sk_tansf.translation = pylon_transf.translation - - sumo.addTextAttribute( - wg_sk_xpath, - "origin", - sumo_str_format( - wg_sk_tansf.translation.x, - wg_sk_tansf.translation.y, - wg_sk_tansf.translation.z, - ), - ) - sumo.addTextAttribute(wg_sk_xpath, "flags", "detectwinglet") - - sec_cnt, pos_x_list, pos_y_list, pos_z_list = get_positionings( - tixi, pylon_xpath, "pylon") - - check_reversed_wing = [] - - wing_sec_index = 1 - - for i_sec in range(sec_cnt): - # for i_sec in reversed(range(sec_cnt)): - sec_xpath = pylon_xpath + \ - "/sections/section[" + str(i_sec + 1) + "]" - sec_uid = tixi.getTextAttribute(sec_xpath, "uID") - sec_transf = Transformation() - sec_transf.get_cpacs_transf(tixi, sec_xpath) - - # Elements - elem_cnt = tixi.getNamedChildrenCount( - sec_xpath + "/elements", "element") - - if elem_cnt > 1: - log.warning( - "Sections " - + sec_uid - + " contains multiple \ - element, it could be an issue for the conversion \ - to SUMO!" - ) - - for i_elem in range(elem_cnt): - elem_xpath = sec_xpath + \ - "/elements/element[" + str(i_elem + 1) + "]" - elem_transf = Transformation() - elem_transf.get_cpacs_transf(tixi, elem_xpath) - - # Get pylon profile (airfoil) - prof_uid = tixi.getTextElement(elem_xpath + "/airfoilUID") - prof_vect_x, prof_vect_y, prof_vect_z = get_profile_coord( - tixi, prof_uid) - - # Convert lists to NumPy arrays - prof_vect_x = np.array(prof_vect_x) - prof_vect_y = np.array(prof_vect_y) - prof_vect_z = np.array(prof_vect_z) - - # Apply scaling - prof_vect_x *= ( - elem_transf.scaling.x - * sec_transf.scaling.x - * pylon_transf.scaling.x - ) - prof_vect_y *= ( - elem_transf.scaling.y - * sec_transf.scaling.y - * pylon_transf.scaling.y - ) - prof_vect_z *= ( - elem_transf.scaling.z - * sec_transf.scaling.z - * pylon_transf.scaling.z - ) - - wg_sec_chord = corrects_airfoil_profile( - prof_vect_x, prof_vect_y, prof_vect_z - ) - - # SUMO variable for WingSection - wg_sec_center_x = ( - elem_transf.translation.x + sec_transf.translation.x + pos_x_list[i_sec] - ) * pylon_transf.scaling.x - wg_sec_center_y = ( - elem_transf.translation.y * sec_transf.scaling.y - + sec_transf.translation.y - + pos_y_list[i_sec] - ) * pylon_transf.scaling.y - wg_sec_center_z = ( - elem_transf.translation.z * sec_transf.scaling.z - + sec_transf.translation.z - + pos_z_list[i_sec] - ) * pylon_transf.scaling.z - - check_reversed_wing.append(wg_sec_center_y) - - # Add rotation from element and sections - # Adding the two angles: Maybe not work in every case!!! - add_rotation = Point() - add_rotation.x = elem_transf.rotation.x + sec_transf.rotation.x - add_rotation.y = elem_transf.rotation.y + sec_transf.rotation.y - add_rotation.z = elem_transf.rotation.z + sec_transf.rotation.z - - # Get Section rotation for SUMO - wg_sec_rot = euler2fix(add_rotation) - wg_sec_dihed = math.radians(wg_sec_rot.x) - wg_sec_twist = math.radians(wg_sec_rot.y) - wg_sec_yaw = math.radians(wg_sec_rot.z) - - # Convert point list into string - prof_str = "" - - # Airfoil points order : should be from TE (1 0) to LE (0 0) - # then TE(1 0), but not reverse way. - - # to avoid double zero, not accepted by SUMO - prof_str += ( - str(round(prof_vect_x[0], 4)) + " " + str(round(prof_vect_z[0], 4)) + " " - ) - for i in range(1, len(prof_vect_x)): - dx_squared = (prof_vect_x[i] - prof_vect_x[i - 1]) ** 2 - dz_squared = (prof_vect_z[i] - prof_vect_z[i - 1]) ** 2 - - if dx_squared + dz_squared > 1e-6: - prof_str += f"{round(prof_vect_x[i], 4)} {round(prof_vect_z[i], 4)} " - - sumo.addTextElementAtIndex( - wg_sk_xpath, "WingSection", prof_str, wing_sec_index) - wg_sec_xpath = wg_sk_xpath + \ - "/WingSection[" + str(wing_sec_index) + "]" - sumo.addTextAttribute(wg_sec_xpath, "airfoil", prof_uid) - sumo.addTextAttribute(wg_sec_xpath, "name", sec_uid) - sumo.addTextAttribute( - wg_sec_xpath, - "center", - sumo_str_format(wg_sec_center_x, - wg_sec_center_y, wg_sec_center_z), - ) - sumo.addTextAttribute(wg_sec_xpath, "chord", str(wg_sec_chord)) - sumo.addTextAttribute( - wg_sec_xpath, "dihedral", str(wg_sec_dihed)) - sumo.addTextAttribute(wg_sec_xpath, "twist", str(wg_sec_twist)) - sumo.addTextAttribute(wg_sec_xpath, "yaw", str(wg_sec_yaw)) - sumo.addTextAttribute(wg_sec_xpath, "napprox", "-1") - sumo.addTextAttribute(wg_sec_xpath, "reversed", "false") - sumo.addTextAttribute(wg_sec_xpath, "vbreak", "false") - - wing_sec_index += 1 - - # Check if the wing section order must be inverted with reversed attribute - if check_reversed_wing[0] < check_reversed_wing[1]: - log.info("Wing section order will be reversed.") - for i_sec in range(sec_cnt): - wg_sec_xpath = wg_sk_xpath + \ - "/WingSection[" + str(i_sec + 1) + "]" - sumo.removeAttribute(wg_sec_xpath, "reversed") - sumo.addTextAttribute(wg_sec_xpath, "reversed", "true") - - # If symmetry, create a mirror copy of the Pylon - if tixi.checkAttribute(pylon_xpath, "symmetry"): - if tixi.getTextAttribute(pylon_xpath, "symmetry") == "x-z-plane": - sumo_mirror_copy(sumo, wg_sk_xpath, pylon_uid, True) - - add_wing_cap(sumo, wg_sk_xpath) - - -def convert_engines(tixi: Tixi3, sumo: Tixi3) -> None: - """ - Convert engine(s) from CPACS to SUMO. - - Args: - tixi (Tixi3): TIXI Handle of the CPACS file. - sumo (Tixi3): TIXI Handle of the SUMO file. - - """ - - include_engine = bool_(get_value_or_default( - tixi, CPACS2SUMO_INCLUDE_ENGINE_XPATH, False)) - - if include_engine: - engine_cnt = elements_number(tixi, ENGINES_XPATH, "engine") - else: - engine_cnt = 0 - - for i_engine in range(engine_cnt): - engine_xpath = ENGINES_XPATH + "/engine[" + str(i_engine + 1) + "]" - - engine = Engine(tixi, engine_xpath) - - # Nacelle (sumo) - xengtransl = engine.transf.translation.x - yengtransl = engine.transf.translation.y - zengtransl = engine.transf.translation.z - - engineparts = [engine.nacelle.fancowl, - engine.nacelle.corecowl, engine.nacelle.centercowl] - - for engpart in engineparts: - if not engpart.isengpart: - log.info("This engine part is not define.") - continue - - if engpart.iscone: - xcontours = engpart.pointlist.xlist - ycontours = engpart.pointlist.ylist - - xengtransl += engpart.xoffset - - ysectransl = 0 - zsectransl = 0 - - else: - xlist = engpart.section.pointlist.xlist - ylist = engpart.section.pointlist.ylist - - xscaling = engpart.section.transf.scaling.x - zscaling = engpart.section.transf.scaling.z - - # Why scaling z for point in y??? CPACS mystery... - xlist = [i * xscaling for i in xlist] - ylist = [i * zscaling for i in ylist] - - # Nacelle parts contour points - # In CPACS nacelles are define as the revolution of section, in SUMO they have to - # be define as a body composed of section + a lip at the inlet - - # Find upper part of the profile - xminidx = xlist.index(min(xlist)) - - yavg1 = sum(ylist[0:xminidx]) / (xminidx) - yavg2 = sum(ylist[xminidx:-1]) / (len(ylist) - xminidx) - - if yavg1 > yavg2: - xcontours = xlist[0:xminidx] - ycontours = ylist[0:xminidx] - else: - xcontours = xlist[xminidx:-1] - ycontours = ylist[xminidx:-1] - - ysectransl = engpart.section.transf.translation.y - zsectransl = engpart.section.transf.translation.z - - # # Plot - # import matplotlib.pyplot as plt - # fig, ax = plt.subplots() - # ax.plot(xlist, ylist,'x') - # ax.plot(xcontours, ycontours,'or') - # ax.set(xlabel='x', ylabel='y',title='Engine profile') - # ax.grid() - # plt.show() - - sumo.createElementAtIndex( - "/Assembly", "BodySkeleton", i_engine + 1) - body_xpath = "/Assembly/BodySkeleton[" + str(i_engine + 1) + "]" - - sumo.addTextAttribute(body_xpath, "akimatg", "false") - sumo.addTextAttribute(body_xpath, "name", engpart.uid) - - # Add body rotation and origin - sumo.addTextAttribute(body_xpath, "rotation", - sumo_str_format(0, 0, 0)) - sumo.addTextAttribute( - body_xpath, - "origin", - sumo_str_format(xengtransl + ysectransl, - yengtransl, zengtransl), - ) - - # Add section - for i_sec in range(len(xcontours)): - namesec = "section_" + str(i_sec + 1) - # Only circle profiles - prof_str = " 0 -1 0.7071 -0.7071 1 0 0.7071 0.7071 0 1" - sumo.addTextElementAtIndex( - body_xpath, "BodyFrame", prof_str, i_sec + 1) - frame_xpath = body_xpath + "/BodyFrame[" + str(i_sec + 1) + "]" - - diam = (ycontours[i_sec] + zsectransl) * 2 - if diam < 0.005: - diam = 0.005 - - sumo.addTextAttribute( - frame_xpath, "center", sumo_str_format( - xcontours[i_sec], 0, 0) - ) - sumo.addTextAttribute(frame_xpath, "height", str(diam)) - sumo.addTextAttribute(frame_xpath, "width", str(diam)) - sumo.addTextAttribute(frame_xpath, "name", namesec) - - # Nacelle/engine options - sumo_add_nacelle_lip(sumo, body_xpath) - - if not engpart.iscone: - sumo_add_engine_bc(sumo, "Engine", engpart.uid) - - if engine.sym: - sumo.createElementAtIndex( - "/Assembly", "BodySkeleton", i_engine + 1) - body_xpath = "/Assembly/BodySkeleton[" + \ - str(i_engine + 1) + "]" - - sumo.addTextAttribute(body_xpath, "akimatg", "false") - sumo.addTextAttribute(body_xpath, "name", engpart.uid + "_sym") - - # Add body rotation and origin - sumo.addTextAttribute( - body_xpath, "rotation", sumo_str_format(0, 0, 0)) - sumo.addTextAttribute( - body_xpath, - "origin", - sumo_str_format( - xengtransl + ysectransl, - -yengtransl, - zengtransl - ), - ) - - # Add section - for i_sec in range(len(xcontours)): - namesec = "section_" + str(i_sec + 1) - # Only circle profiles - prof_str = " 0 -1 0.7071 -0.7071 1 0 0.7071 0.7071 0 1" - sumo.addTextElementAtIndex( - body_xpath, "BodyFrame", prof_str, i_sec + 1) - frame_xpath = body_xpath + \ - "/BodyFrame[" + str(i_sec + 1) + "]" - - diam = (ycontours[i_sec] + zsectransl) * 2 - if diam < 0.005: - diam = 0.005 - - sumo.addTextAttribute( - frame_xpath, "center", sumo_str_format( - xcontours[i_sec], 0, 0) - ) - sumo.addTextAttribute(frame_xpath, "height", str(diam)) - sumo.addTextAttribute(frame_xpath, "width", str(diam)) - sumo.addTextAttribute(frame_xpath, "name", namesec) - - # Nacelle/Enine options - sumo_add_nacelle_lip(sumo, body_xpath) - - if not engpart.iscone: - sumo_add_engine_bc(sumo, "Engine_sym", - engpart.uid + "_sym") - - -def main(cpacs: CPACS, wkdir: Path) -> None: - """ - Converts a CPACS file geometry into a SUMO file geometry. - - Converts every elements in the SUMO .smx format (which is also an xml file). - - Limitation: (What differences ?) - Due to some differences between both format, some CPACS definition could lead to issues. - - Source: - * CPACS documentation: https://www.cpacs.de/pages/documentation.html - - Args: - cpacs_path (Path): Path to the CPACS file. - cpacs_out_path (Path): Path to the CPACS file. - - Returns: - sumo_output_path (str): Path to the SUMO file, saved in the folder /ToolOutput. - - """ - - tixi = cpacs.tixi - sumo = open_tixi(Path(MODULE_DIR, "files", "sumo_empty.smx")) - - # Convert all the different elements - convert_fuselages(tixi, sumo) - convert_wings(tixi, sumo) - convert_enginepylons(tixi, sumo) - convert_engines(tixi, sumo) - - # Get results directory - sumo_file_path = str(Path(wkdir, "ToolOutput.smx")) - - log.info(f"Saving sumo at {sumo_file_path}.") - create_branch(tixi, CPACS2SUMOFILE_XPATH) - tixi.updateTextElement(CPACS2SUMOFILE_XPATH, sumo_file_path) - - # Save SMX file - sumo.save(sumo_file_path) - - if bool_(get_value(tixi, CPACS2SUMO_SUMO_GUI_XPATH)): - # Open SUMO - try: - log.info("To continue the workflow, please close the SUMO window.") - subprocess.run(["sumo", sumo_file_path], check=True) - except subprocess.CalledProcessError as e: - log.error(f"Failed to open SUMO: {e}.") - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - call_main(main, MODULE_NAME) diff --git a/ceasiompy/ModuleTemplate/tests/ToolInput/simpletest_cpacs.xml b/ceasiompy/ModuleTemplate/tests/ToolInput/simpletest_cpacs.xml deleted file mode 100755 index b407294db..000000000 --- a/ceasiompy/ModuleTemplate/tests/ToolInput/simpletest_cpacs.xml +++ /dev/null @@ -1,576 +0,0 @@ - - -
- Cpacs2Test - Simple Wing for unit testing - Martin Siggel - 2012-10-09T15:12:47 - 0.2 - 3.0 - - - Converted to cpacs 3.0 using cpacs2to3 - does not include structure update - cpacs2to3 - 2018-01-15T09:22:57 - 0.2 - 3.0 - - - Add this update - Aidan - 2018-10-03T09:00:01 - 0.3 - 3.0 - - -
- - - - Cpacs2Test - - 1 - 1 - - 0 - 0 - 0 - - - - - name - description - - - 1.0 - 0.5 - 0.5 - - - 0.0 - 0.0 - 0.0 - - - 0.0 - 0.0 - 0.0 - - - -
- D150_Fuselage_1Section1 - - - 1.0 - 1.0 - 1.0 - - - 0.0 - 0.0 - 0.0 - - - 0 - 0 - 0 - - - - - D150_Fuselage_1Section1 - fuselageCircleProfileuID - - - 1.0 - 1.0 - 1.0 - - - 0 - 0 - 0 - - - 0 - 0 - 0 - - - - -
-
- D150_Fuselage_1Section2 - - - 1.0 - 1.0 - 1.0 - - - 0.0 - 0.0 - 0.0 - - - 0.5 - 0 - 0 - - - - - D150_Fuselage_1Section2 - fuselageCircleProfileuID - - - 1 - 1 - 1 - - - 0 - 0 - 0 - - - 0 - 0 - 0 - - - - -
-
- D150_Fuselage_1Section3 - - - 1.0 - 1.0 - 1.0 - - - 0.0 - 0.0 - 0.0 - - - 0 - 0 - 0 - - - - - D150_Fuselage_1Section3 - fuselageCircleProfileuID - - - 1 - 1 - 1 - - - 0 - 0 - 0 - - - 0 - 0 - 0 - - - - -
-
- D150_Fuselage_1Section4 - - - 1.0 - 1.0 - 1.0 - - - 0.0 - 0.0 - 0.0 - - - 0 - 0 - 0 - - - - - D150_Fuselage_1Section4 - fuselageCircleProfileuID - - - 1 - 1 - 1 - - - 0 - 0 - 0 - - - 0 - 0 - 0 - - - - -
-
- - - D150_Fuselage_1Positioning1 - -0.5 - 90 - 0 - D150_Fuselage_1Section1ID - - - D150_Fuselage_1Positioning3 - 2 - 90 - 0 - D150_Fuselage_1Section1ID - D150_Fuselage_1Section2ID - - - D150_Fuselage_1Positioning3 - 2 - 90 - 0 - D150_Fuselage_1Section2ID - D150_Fuselage_1Section3ID - - - D150_Fuselage_1Positioning4 - 2 - 90 - 0 - D150_Fuselage_1Section3ID - D150_Fuselage_1Section4ID - - - - - D150_Fuselage_1Segment1 - D150_Fuselage_1Section1IDElement1 - D150_Fuselage_1Section2IDElement1 - - - D150_Fuselage_1Segment2 - D150_Fuselage_1Section2IDElement1 - D150_Fuselage_1Section3IDElement1 - - - D150_Fuselage_1Segment3 - D150_Fuselage_1Section3IDElement1 - D150_Fuselage_1Section4IDElement1 - - -
-
- - - Wing - SimpleFuselage - This wing has been generated to test CATIA2CPACS. - - - 1 - 1 - 1 - - - 0 - 0 - 0 - - - 0 - 0 - 0 - - - -
- Cpacs2Test - Wing Section 1 - Cpacs2Test - Wing Section 1 - - - 1 - 1 - 1 - - - 0 - 0 - 0 - - - 0 - 0 - 0 - - - - - Cpacs2Test - Wing Section 1 Main Element - Cpacs2Test - Wing Section 1 Main Element - NACA0012 - - - 1 - 1 - 1 - - - 0 - 0 - 0 - - - 0 - 0 - 0 - - - - -
-
- Cpacs2Test - Wing Section 2 - Cpacs2Test - Wing Section 2 - - - 1 - 1 - 1 - - - 0 - 0 - 0 - - - 0 - 0 - 0 - - - - - Cpacs2Test - Wing Section 2 Main Element - Cpacs2Test - Wing Section 2 Main Element - NACA0012 - - - 1 - 1 - 1 - - - 0 - 0 - 0 - - - 0 - 0 - 0 - - - - -
-
- Cpacs2Test - Wing Section 3 - Cpacs2Test - Wing Section 3 - - - 1 - 1 - 1 - - - 0 - 0 - 0 - - - 0 - 0 - 0 - - - - - Cpacs2Test - Wing Section 3 Main Element - Cpacs2Test - Wing Section 3 Main Element - NACA0012 - - - 0.5 - 0.5 - 0.5 - - - 0 - 0 - 0 - - - 0.5 - 0 - 0 - - - - -
-
- - - Cpacs2Test - Wing Section 1 Positioning - Cpacs2Test - Wing Section 1 Positioning - 0 - 0 - 0 - Cpacs2Test_Wing_Sec1 - - - Cpacs2Test - Wing Section 2 Positioning - Cpacs2Test - Wing Section 2 Positioning - 1 - 0 - 0 - Cpacs2Test_Wing_Sec1 - Cpacs2Test_Wing_Sec2 - - - Cpacs2Test - Wing Section 3 Positioning - Cpacs2Test - Wing Section 3 Positioning - 1 - 0 - 0 - Cpacs2Test_Wing_Sec2 - Cpacs2Test_Wing_Sec3 - - - - - Fuselage Segment from Cpacs2Test - Wing Section 1 Main Element to Cpacs2Test - Wing Section 2 Main Element - Fuselage Segment from Cpacs2Test - Wing Section 1 Main Element to Cpacs2Test - Wing Section 2 Main Element - Cpacs2Test_Wing_Sec1_El1 - Cpacs2Test_Wing_Sec2_El1 - - - Fuselage Segment from Cpacs2Test - Wing Section 2 Main Element to Cpacs2Test - Wing Section 3 Main Element - Fuselage Segment from Cpacs2Test - Wing Section 2 Main Element to Cpacs2Test - Wing Section 3 Main Element - Cpacs2Test_Wing_Sec2_El1 - Cpacs2Test_Wing_Sec3_El1 - - - - - Wing_CS1 - Cpacs2Test_Wing_Sec1_El1 - Cpacs2Test_Wing_Sec3_El1 - - - - - MySkinMat - 0.0 - - - - - - - MyCellMat - 0.0 - - - - 0.8 - 0.8 - - - 1.0 - 1.0 - - - 0.0 - 0.0 - - - 0.5 - 0.5 - - - - - - - - MySkinMat - - - - - - -
-
-
-
- - - - NACA0.00.00.12 - NACA 4 Series Profile - - 1.0;0.9875;0.975;0.9625;0.95;0.9375;0.925;0.9125;0.9;0.8875;0.875;0.8625;0.85;0.8375;0.825;0.8125;0.8;0.7875;0.775;0.7625;0.75;0.7375;0.725;0.7125;0.7;0.6875;0.675;0.6625;0.65;0.6375;0.625;0.6125;0.6;0.5875;0.575;0.5625;0.55;0.5375;0.525;0.5125;0.5;0.4875;0.475;0.4625;0.45;0.4375;0.425;0.4125;0.4;0.3875;0.375;0.3625;0.35;0.3375;0.325;0.3125;0.3;0.2875;0.275;0.2625;0.25;0.2375;0.225;0.2125;0.2;0.1875;0.175;0.1625;0.15;0.1375;0.125;0.1125;0.1;0.0875;0.075;0.0625;0.05;0.0375;0.025;0.0125;0.0;0.0125;0.025;0.0375;0.05;0.0625;0.075;0.0875;0.1;0.1125;0.125;0.1375;0.15;0.1625;0.175;0.1875;0.2;0.2125;0.225;0.2375;0.25;0.2625;0.275;0.2875;0.3;0.3125;0.325;0.3375;0.35;0.3625;0.375;0.3875;0.4;0.4125;0.425;0.4375;0.45;0.4625;0.475;0.4875;0.5;0.5125;0.525;0.5375;0.55;0.5625;0.575;0.5875;0.6;0.6125;0.625;0.6375;0.65;0.6625;0.675;0.6875;0.7;0.7125;0.725;0.7375;0.75;0.7625;0.775;0.7875;0.8;0.8125;0.825;0.8375;0.85;0.8625;0.875;0.8875;0.9;0.9125;0.925;0.9375;0.95;0.9625;0.975;0.9875;1.0 - 0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0;0.0 - -0.00126;-0.0030004180415;-0.00471438572941;-0.00640256842113;-0.00806559133343;-0.00970403933653;-0.0113184567357;-0.0129093470398;-0.0144771727147;-0.0160223549226;-0.0175452732434;-0.0190462653789;-0.0205256268372;-0.0219836105968;-0.0234204267471;-0.024836242105;-0.0262311798047;-0.0276053188583;-0.0289586936852;-0.0302912936071;-0.0316030623052;-0.0328938972373;-0.0341636490097;-0.0354121207001;-0.0366390671268;-0.0378441940595;-0.0390271573644;-0.0401875620783;-0.0413249614032;-0.042438855614;-0.043528690869;-0.0445938579126;-0.0456336906587;-0.04664746464;-0.0476343953088;-0.0485936361694;-0.0495242767241;-0.0504253402064;-0.0512957810767;-0.0521344822472;-0.0529402520006;-0.0537118205596;-0.0544478362583;-0.0551468612564;-0.0558073667285;-0.0564277274483;-0.0570062156697;-0.0575409941929;-0.0580301084765;-0.0584714776309;-0.0588628840933;-0.059201961739;-0.0594861821311;-0.0597128385384;-0.059879027262;-0.0599816256958;-0.060017266394;-0.059982306219;-0.05987278938;-0.0596844028137;-0.059412421875;-0.059051643633;-0.0585963041308;-0.0580399746271;-0.0573754299024;-0.0565944788455;-0.0556877432118;-0.054644363746;-0.0534516022043;-0.0520942903127;-0.0505540468987;-0.0488081315259;-0.0468277042382;-0.0445750655553;-0.0419990347204;-0.0390266537476;-0.0355468568262;-0.0313738751622;-0.0261471986426;-0.0189390266528;0.0;0.0189390266528;0.0261471986426;0.0313738751622;0.0355468568262;0.0390266537476;0.0419990347204;0.0445750655553;0.0468277042382;0.0488081315259;0.0505540468987;0.0520942903127;0.0534516022043;0.054644363746;0.0556877432118;0.0565944788455;0.0573754299024;0.0580399746271;0.0585963041308;0.059051643633;0.059412421875;0.0596844028137;0.05987278938;0.059982306219;0.060017266394;0.0599816256958;0.059879027262;0.0597128385384;0.0594861821311;0.059201961739;0.0588628840933;0.0584714776309;0.0580301084765;0.0575409941929;0.0570062156697;0.0564277274483;0.0558073667285;0.0551468612564;0.0544478362583;0.0537118205596;0.0529402520006;0.0521344822472;0.0512957810767;0.0504253402064;0.0495242767241;0.0485936361694;0.0476343953088;0.04664746464;0.0456336906587;0.0445938579126;0.043528690869;0.042438855614;0.0413249614032;0.0401875620783;0.0390271573644;0.0378441940595;0.0366390671268;0.0354121207001;0.0341636490097;0.0328938972373;0.0316030623052;0.0302912936071;0.0289586936852;0.0276053188583;0.0262311798047;0.024836242105;0.0234204267471;0.0219836105968;0.0205256268372;0.0190462653789;0.0175452732434;0.0160223549226;0.0144771727147;0.0129093470398;0.0113184567357;0.00970403933653;0.00806559133343;0.00640256842113;0.00471438572941;0.0030004180415;0.00126 - - - - - - Circle - Profile build up from set of Points on Circle where may Dimensions are 1..-1 - - 0.0;0.0;0.0;0.0;0.0 - 0.0;1.0;0.0;-1.0;0.0 - 1.0;0.0;-1.0;0.0;1.0 - - - - -
- -
diff --git a/ceasiompy/WeightConventional/ToolInput/.keep b/ceasiompy/WeightConventional/ToolInput/.keep deleted file mode 100755 index 8b1378917..000000000 --- a/ceasiompy/WeightConventional/ToolInput/.keep +++ /dev/null @@ -1 +0,0 @@ - diff --git a/ceasiompy/WeightConventional/ToolOutput/.keep b/ceasiompy/WeightConventional/ToolOutput/.keep deleted file mode 100755 index 8b1378917..000000000 --- a/ceasiompy/WeightConventional/ToolOutput/.keep +++ /dev/null @@ -1 +0,0 @@ - diff --git a/ceasiompy/WeightUnconventional/ToolInput/.keep b/ceasiompy/WeightUnconventional/ToolInput/.keep deleted file mode 100755 index 8b1378917..000000000 --- a/ceasiompy/WeightUnconventional/ToolInput/.keep +++ /dev/null @@ -1 +0,0 @@ - diff --git a/ceasiompy/WeightUnconventional/ToolOutput/.keep b/ceasiompy/WeightUnconventional/ToolOutput/.keep deleted file mode 100755 index 8b1378917..000000000 --- a/ceasiompy/WeightUnconventional/ToolOutput/.keep +++ /dev/null @@ -1 +0,0 @@ - diff --git a/ceasiompy/BalanceConventional/func/AinFunc/__init__.py b/docker old mode 100755 new mode 100644 similarity index 100% rename from ceasiompy/BalanceConventional/func/AinFunc/__init__.py rename to docker diff --git a/environment.yml b/environment.yml index a5de543ad..59a4dba3f 100755 --- a/environment.yml +++ b/environment.yml @@ -58,7 +58,7 @@ dependencies: - shapely==2.1.0 - smt==2.9.2 - stpyvista==0.1.4 - - streamlit==1.44.1 + - streamlit==1.45.1 - streamlit-autorefresh - vtk==9.3.0 - scikit-optimize==0.10.2 diff --git a/history.csv b/history.csv new file mode 100644 index 000000000..2eec26300 --- /dev/null +++ b/history.csv @@ -0,0 +1 @@ +"Inner_Iter", "rms[Rho]" , "rms[RhoU]" , "rms[RhoV]" , "rms[RhoW]" , "rms[RhoE]" , "RefForce" , "CD" , "CL" , "CSF" , "CMx" , "CMy" , "CMz" , "CFx" , "CFy" , "CFz" , "CEff" diff --git a/installation/CentOS/install_miniconda.sh b/installation/CentOS/install_miniconda.sh index 6f09a25cb..544ceee91 100755 --- a/installation/CentOS/install_miniconda.sh +++ b/installation/CentOS/install_miniconda.sh @@ -8,7 +8,7 @@ current_dir="$(pwd)" if [ $# -gt 0 ]; then install_dir="$1/INSTALLDIR" else - install_dir="$(pwd)/../../INSTALLDIR" + install_dir="$(pwd)/INSTALLDIR" fi echo "Creating install directory..." diff --git a/installation/CentOS/install_paraview.sh b/installation/CentOS/install_paraview.sh index b85da62b9..5fbfc7c15 100755 --- a/installation/CentOS/install_paraview.sh +++ b/installation/CentOS/install_paraview.sh @@ -8,7 +8,7 @@ current_dir="$(pwd)" if [ $# -gt 0 ]; then install_dir="$1/INSTALLDIR" else - install_dir="$(pwd)/../../INSTALLDIR" + install_dir="$(pwd)/INSTALLDIR" fi echo "Creating install directory..." diff --git a/installation/CentOS/install_pyavl.sh b/installation/CentOS/install_pyavl.sh index 346618421..cdf5fde9f 100755 --- a/installation/CentOS/install_pyavl.sh +++ b/installation/CentOS/install_pyavl.sh @@ -7,7 +7,7 @@ current_dir="$(pwd)" if [ $# -gt 0 ]; then install_dir="$1/INSTALLDIR" else - install_dir="$(pwd)/../../INSTALLDIR" + install_dir="$(pwd)/INSTALLDIR" fi echo "Creating install directory..." diff --git a/installation/CentOS/install_pytornado.sh b/installation/CentOS/install_pytornado.sh index 7ec4c0a40..052d699ed 100755 --- a/installation/CentOS/install_pytornado.sh +++ b/installation/CentOS/install_pytornado.sh @@ -8,7 +8,7 @@ current_dir="$(pwd)" if [ $# -gt 0 ]; then install_dir="$1/INSTALLDIR" else - install_dir="$(pwd)/../../INSTALLDIR" + install_dir="$(pwd)/INSTALLDIR" fi echo "Creating install directory..." diff --git a/installation/CentOS/install_su2.sh b/installation/CentOS/install_su2.sh index dbe1cc5e2..617c703ce 100755 --- a/installation/CentOS/install_su2.sh +++ b/installation/CentOS/install_su2.sh @@ -3,7 +3,6 @@ # Script to install SU2 on Centos 8 su2_version="8.1.0" -mpi_version="4.1.1" current_dir="$(pwd)" @@ -11,7 +10,7 @@ current_dir="$(pwd)" if [ $# -gt 0 ]; then install_dir="$1/INSTALLDIR" else - install_dir="$(pwd)/../../INSTALLDIR" + install_dir="$(pwd)/INSTALLDIR" fi echo "Creating install directory..." @@ -33,8 +32,12 @@ echo export SU2_HOME=\""$su2_home_path"\" >> ~/.bashrc echo export PYTHONPATH=\$PYTHONPATH:\$SU2_RUN >> ~/.bashrc echo export PATH=\"\$PATH:\$SU2_RUN\" >> ~/.bashrc +echo "Updating dnf repositories and upgrading packages..." +sudo dnf check-update +sudo dnf upgrade + echo "Installing MPICH..." -sudo dnf install -y mpich$mpi_version +sudo dnf install -y mpich echo "Adding MPICH path to the .bashrc" mpich_path="/usr/bin" diff --git a/installation/CentOS/install_sumo.sh b/installation/CentOS/install_sumo.sh index fa7a4016f..b78310217 100755 --- a/installation/CentOS/install_sumo.sh +++ b/installation/CentOS/install_sumo.sh @@ -8,7 +8,7 @@ current_dir="$(pwd)" if [ $# -gt 0 ]; then install_dir="$1/INSTALLDIR" else - install_dir="$(pwd)/../../INSTALLDIR" + install_dir="$(pwd)/INSTALLDIR" fi echo "Creating install directory..." diff --git a/installation/DOCKER_INSTALLATION.md b/installation/DOCKER_INSTALLATION.md index d0e0d3f4e..9287fe6f0 100755 --- a/installation/DOCKER_INSTALLATION.md +++ b/installation/DOCKER_INSTALLATION.md @@ -43,15 +43,24 @@ docker build --platform=linux/amd64 -t ceasiompy-image -f CEASIOMpy_docker_Insta Run the Docker container (you need to modify /pathtoYOURlocal/CEASIOMpy with the absolute path of your CEASIOMpy's folder location): +On Linux/macOS: + ```bash -docker run -it --rm \ +docker run --init -it --rm --net=host \ -e DISPLAY=$DISPLAY \ -e LIBGL_ALWAYS_SOFTWARE=1 \ +-e OMPI_ALLOW_RUN_AS_ROOT=1 \ +-e OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 \ -v /tmp/.X11-unix:/tmp/.X11-unix \ ---ipc=host \ --v /pathtoYOURlocal/CEASIOMpy:/CEASIOMpy \ -p 8501:8501 \ +-v /pathto/CEASIOMpy:/CEASIOMpy \ ceasiompy-image ``` -You can now click on local URL and use CEASIOMpy's GUI (Graphical User Interface) with all of its required software. \ No newline at end of file +On Windows: + +```bash +docker run -it --rm -e DISPLAY=$DISPLAY -e LIBGL_ALWAYS_SOFTWARE=1 -e OMPI_ALLOW_RUN_AS_ROOT=1 -e OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 -v /tmp/.X11-unix:/tmp/.X11-unix -p 8501:8501 -v C:/username/pathto/CEASIOMpy:/CEASIOMpy ceasiompy-image +``` + +You can now click on local URL and use CEASIOMpy's GUI (Graphical User Interface) with all of its required software. diff --git a/installation/LINUX_INSTALLATION.md b/installation/LINUX_INSTALLATION.md index fc90fe65d..ec79ae9a1 100644 --- a/installation/LINUX_INSTALLATION.md +++ b/installation/LINUX_INSTALLATION.md @@ -30,7 +30,7 @@ source ~/.bashrc ./install_ceasiompy.sh ./install_pyavl.sh ./install_sumo.sh -./install_su2.sh +./install_su2_with_mpi.sh ./install_paraview.sh source ~/.bashrc ``` diff --git a/installation/Ubuntu/install_miniconda.sh b/installation/Ubuntu/install_miniconda.sh index 620599d31..68138ea98 100755 --- a/installation/Ubuntu/install_miniconda.sh +++ b/installation/Ubuntu/install_miniconda.sh @@ -8,7 +8,7 @@ current_dir="$(pwd)" if [ $# -gt 0 ]; then install_dir="$1/INSTALLDIR" else - install_dir="$(pwd)/../../INSTALLDIR" + install_dir="$(pwd)/INSTALLDIR" fi echo "Creating install directory..." diff --git a/installation/Ubuntu/install_paraview.sh b/installation/Ubuntu/install_paraview.sh index 361c9b5c9..b2e550c58 100755 --- a/installation/Ubuntu/install_paraview.sh +++ b/installation/Ubuntu/install_paraview.sh @@ -8,7 +8,7 @@ current_dir="$(pwd)" if [ $# -gt 0 ]; then install_dir="$1/INSTALLDIR" else - install_dir="$(pwd)/../../INSTALLDIR" + install_dir="$(pwd)/INSTALLDIR" fi echo "Creating install directory..." diff --git a/installation/Ubuntu/install_pentagrow.sh b/installation/Ubuntu/install_pentagrow.sh index 7cdac60d7..6547a257c 100755 --- a/installation/Ubuntu/install_pentagrow.sh +++ b/installation/Ubuntu/install_pentagrow.sh @@ -11,7 +11,7 @@ current_dir="$(pwd)" if [ $# -gt 0 ]; then install_dir="$1/INSTALLDIR" else - install_dir="$script_dir/../../INSTALLDIR" + install_dir="$script_dir/INSTALLDIR" fi echo "Creating install directory..." diff --git a/installation/Ubuntu/install_pyavl.sh b/installation/Ubuntu/install_pyavl.sh index d86eb066a..fe2d9da48 100755 --- a/installation/Ubuntu/install_pyavl.sh +++ b/installation/Ubuntu/install_pyavl.sh @@ -7,7 +7,7 @@ current_dir="$(pwd)" if [ $# -gt 0 ]; then install_dir="$1/INSTALLDIR" else - install_dir="$(pwd)/../../INSTALLDIR" + install_dir="$(pwd)/INSTALLDIR" fi echo "Creating install directory..." diff --git a/installation/Ubuntu/install_pytornado.sh b/installation/Ubuntu/install_pytornado.sh index f4cff55ae..ac61f9ba6 100755 --- a/installation/Ubuntu/install_pytornado.sh +++ b/installation/Ubuntu/install_pytornado.sh @@ -8,7 +8,7 @@ current_dir="$(pwd)" if [ $# -gt 0 ]; then install_dir="$1/INSTALLDIR" else - install_dir="$(pwd)/../../INSTALLDIR" + install_dir="$(pwd)/INSTALLDIR" fi echo "Creating install directory..." diff --git a/installation/Ubuntu/install_su2.sh b/installation/Ubuntu/install_su2.sh deleted file mode 100755 index b14a957d7..000000000 --- a/installation/Ubuntu/install_su2.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash - -# Script to install SU2 - -su2_version="8.1.0" -mpi_version="4.0-3" - -current_dir="$(pwd)" - -# Get install dir from input if it exists -if [ $# -gt 0 ]; then - install_dir="$1/INSTALLDIR" -else - install_dir="$(pwd)/../../INSTALLDIR" -fi - -echo "Creating install directory..." -mkdir -p "$install_dir" -cd "$install_dir" - -echo "Downloading SU2..." -wget https://github.com/su2code/SU2/releases/download/v"$su2_version"/SU2-v"$su2_version"-linux64-mpi.zip -unzip -d SU2-v"$su2_version"-linux64-mpi SU2-v"$su2_version"-linux64-mpi.zip - -echo "Adding path to the .bashrc" - -su2_run_path=/"$install_dir"/SU2-v"$su2_version"-linux64-mpi/bin -su2_home_path=/"$install_dir"/SU2-v"$su2_version"-linux64-mpi - -echo \# SU2 Path >> ~/.bashrc -echo export SU2_RUN=\""$su2_run_path"\" >> ~/.bashrc -echo export SU2_HOME=\""$su2_home_path"\" >> ~/.bashrc -echo export PYTHONPATH=\$PYTHONPATH:\$SU2_RUN >> ~/.bashrc -echo export PATH=\"\$PATH:\$SU2_RUN\" >> ~/.bashrc - -echo "Installing MPICH..." -sudo apt install -y mpich=$mpi_version -# sudo apt install -y mpich - -echo "Adding MPICH path to the .bashrc" - -mpich_path="/usr/bin" -echo export PATH=\"\$PATH:$mpich_path\" >> ~/.bashrc - -source ~/.bashrc - -echo "Checking SU2 version" -"$SU2_RUN/SU2_CFD" --help - -echo "Checking MPICH version" -mpirun --version - -cd "$current_dir" \ No newline at end of file diff --git a/installation/Ubuntu/install_su2_with_mpi.sh b/installation/Ubuntu/install_su2_with_mpi.sh new file mode 100755 index 000000000..03a48f7c1 --- /dev/null +++ b/installation/Ubuntu/install_su2_with_mpi.sh @@ -0,0 +1,63 @@ +#!/bin/bash + +# Script to build and install SU2 from source with MPI support + +su2_version="8.1.0" +current_dir="$(pwd)" + +# Get install dir from input if it exists +if [ $# -gt 0 ]; then + install_dir="$1/INSTALLDIR" +else + install_dir="$(pwd)/INSTALLDIR" +fi + +echo "Creating install directory..." +mkdir -p "$install_dir" +cd "$install_dir" + +echo "Installing build dependencies for Open MPI" +sudo apt-get update && \ + apt-get install -y --no-install-recommends \ + build-essential \ + openmpi-bin \ + openmpi-doc \ + libopenmpi-dev && \ + rm -rf /var/lib/apt/lists/* + +echo "Installing build dependencies for SU2" +sudo apt-get update && sudo apt-get install -y --no-install-recommends \ + python3 python3-pip meson ninja-build pkg-config \ + libhwloc-dev libpmix-dev libucx-dev + +git clone --recursive --branch v${su2_version} https://github.com/su2code/SU2.git su2_source +cd su2_source + +export INSTALL_DIR="$install_dir" +export CC=mpicc +export CXX=mpicxx + +echo "Checking MPI compiler..." +which mpicc && mpicc --version + +echo "Preconfiguring SU2..." +python3 preconfigure.py + +echo "Configuring SU2 with Meson..." +python3 meson.py build --prefix="${INSTALL_DIR}" \ + -Denable-autodiff=true \ + -Denable-directdiff=true \ + -Dwith-mpi=enabled \ + -Dwith-omp=true \ + --buildtype=release + +echo "Building and installing SU2..." +ninja -C build install + +echo "Checking SU2 version" +"${INSTALL_DIR}/bin/SU2_CFD" --help + +echo "Checking MPI version" +mpirun --version + +cd "$current_dir" \ No newline at end of file diff --git a/installation/Ubuntu/install_su2_without_mpi.sh b/installation/Ubuntu/install_su2_without_mpi.sh new file mode 100755 index 000000000..5bd6c47f2 --- /dev/null +++ b/installation/Ubuntu/install_su2_without_mpi.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# Script to install SU2 + +su2_version="8.1.0" + +current_dir="$(pwd)" + +# Get install dir from input if it exists +if [ $# -gt 0 ]; then + install_dir="$1/INSTALLDIR" +else + install_dir="$(pwd)/INSTALLDIR" +fi + +echo "Creating install directory..." +mkdir -p "$install_dir" +cd "$install_dir" + +echo "Downloading SU2..." +wget https://github.com/su2code/SU2/releases/download/v"$su2_version"/SU2-v"$su2_version"-linux64.zip +unzip -d SU2-v"$su2_version"-linux64 SU2-v"$su2_version"-linux64.zip + +su2_run_path="$install_dir"/SU2-v"$su2_version"-linux64/bin + +echo "export SU2_RUN=\"$su2_run_path\"" >> ~/.bashrc +echo "export PYTHONPATH=\$PYTHONPATH:\$SU2_RUN" >> ~/.bashrc +echo "export PATH=\$PATH:\$SU2_RUN" >> ~/.bashrc + +echo "Checking SU2 version" +"$SU2_RUN/SU2_CFD" --help + +cd "$current_dir" \ No newline at end of file diff --git a/installation/Ubuntu/install_sumo.sh b/installation/Ubuntu/install_sumo.sh index e2af00d1e..07eef2c70 100755 --- a/installation/Ubuntu/install_sumo.sh +++ b/installation/Ubuntu/install_sumo.sh @@ -8,7 +8,7 @@ current_dir="$(pwd)" if [ $# -gt 0 ]; then install_dir="$1/INSTALLDIR" else - install_dir="$(pwd)/../../INSTALLDIR" + install_dir="$(pwd)/INSTALLDIR" fi echo "Creating install directory..." diff --git a/setup.py b/setup.py index 45d08c957..61d374ec3 100755 --- a/setup.py +++ b/setup.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -import platform import setuptools from pathlib import Path @@ -15,17 +14,8 @@ REQUIRES_PYTHON = ">=3.11.11" REQUIRED = ["numpy"] README = "README.md" -PACKAGE_DIR = "." +PACKAGE_DIR = "src" LICENSE = "LICENSE" -SCRIPTS = [str(Path("src/bin/ceasiompy_exec.py"))] - -# Windows -if platform.system().lower() == "windows": - # Use BAT file as wrapper, see file header for reason - SCRIPTS.append(str(Path("src/bin/ceasiompy_run.bat"))) -# Linux and MacOs -else: - SCRIPTS.append(str(Path("src/bin/ceasiompy_run"))) here = Path(__file__).parent @@ -45,9 +35,9 @@ url=URL, include_package_data=True, package_dir={"": PACKAGE_DIR}, - scripts=SCRIPTS, + entry_points={'console_scripts': ['ceasiompy_run = CEASIOMpyStreamlit.cli:main_exec']}, license=license, - packages=setuptools.find_packages(exclude=EXCLUDE_DIRS), + packages=setuptools.find_packages(where=PACKAGE_DIR, exclude=EXCLUDE_DIRS), python_requires=REQUIRES_PYTHON, install_requires=[], # See: https://pypi.org/classifiers/ diff --git a/src/streamlit/.streamlit/config.toml b/src/CEASIOMpyStreamlit/.streamlit/config.toml similarity index 100% rename from src/streamlit/.streamlit/config.toml rename to src/CEASIOMpyStreamlit/.streamlit/config.toml diff --git a/src/streamlit/CEASIOMpy.py b/src/CEASIOMpyStreamlit/CEASIOMpy.py similarity index 98% rename from src/streamlit/CEASIOMpy.py rename to src/CEASIOMpyStreamlit/CEASIOMpy.py index 448309d68..3bb6ec0ce 100755 --- a/src/streamlit/CEASIOMpy.py +++ b/src/CEASIOMpyStreamlit/CEASIOMpy.py @@ -20,7 +20,7 @@ import streamlit as st import plotly.graph_objects as go -from src.streamlit.streamlitutils import create_sidebar +from CEASIOMpyStreamlit.streamlitutils import create_sidebar from stl import mesh from pathlib import Path diff --git a/ceasiompy/BalanceConventional/func/AoutFunc/__init__.py b/src/CEASIOMpyStreamlit/__init__.py similarity index 100% rename from ceasiompy/BalanceConventional/func/AoutFunc/__init__.py rename to src/CEASIOMpyStreamlit/__init__.py diff --git a/src/CEASIOMpyStreamlit/cli.py b/src/CEASIOMpyStreamlit/cli.py new file mode 100644 index 000000000..791bca3eb --- /dev/null +++ b/src/CEASIOMpyStreamlit/cli.py @@ -0,0 +1,96 @@ +"""Running CEASIOMpy script.""" + +import os +import sys +import subprocess + +from pathlib import Path + + +def find_project_root(): + current = os.getcwd() + while current != '/': + if 'setup.py' in os.listdir(current): + return current + current = os.path.dirname(current) + raise RuntimeError("Project root directory not found at " + os.getcwd()) + + +def main_exec(): + """ + Entry point function for the run_ceasiompy command. + + This function executes the ceasiompy_exec.py script located + in src/bin within the project root, setting the working directory + to the project root and passing along all command-line arguments. + """ + # Define the absolute path to the project root based on the Docker mount. + PROJECT_ROOT = Path(find_project_root()) + + # Define the path to the ceasiompy_exec.py script relative to the project root. + SCRIPT_RELATIVE_PATH = Path("src") / "bin" / "ceasiompy_exec.py" + SCRIPT_ABSOLUTE_PATH = PROJECT_ROOT / SCRIPT_RELATIVE_PATH + + # --- Validation --- + + if not PROJECT_ROOT.is_dir(): + print(f"Error: Project root directory not found at {PROJECT_ROOT}", file=sys.stderr) + sys.exit(1) + + if not SCRIPT_ABSOLUTE_PATH.is_file(): + print(f"Error: Script not found at {SCRIPT_ABSOLUTE_PATH}", file=sys.stderr) + sys.exit(1) + + # --- Prepare Command --- + + # Get arguments passed to this entry point (sys.argv[0] is the command name) + # We pass all arguments from index 1 onwards to the subprocess + script_args = sys.argv[1:] + + # Construct the command to run + # Use sys.executable to ensure we use the python interpreter from the current environment + command = [sys.executable, str(SCRIPT_ABSOLUTE_PATH)] + script_args + + # Set PYTHONPATH to include src/ + env = os.environ.copy() + src_path = str(PROJECT_ROOT / "src") + env["PYTHONPATH"] = src_path + os.pathsep + env.get("PYTHONPATH", "") + + # --- Execute Script --- + + try: + # Use subprocess.run to execute the command + # cwd: Set the current working directory for the command to the project root + # check=True: Raise a CalledProcessError if the script returns a non-zero exit code + subprocess.run(command, cwd=PROJECT_ROOT, check=True, env=env) + + # Deal with exceptions + except FileNotFoundError: + msg = ( + "Error: Python interpreter or script not found. " + f"Command: {' '.join(map(str, command))}" + ) + print(msg, file=sys.stderr) + sys.exit(1) # Indicate failure + + except subprocess.CalledProcessError as e: + # This happens if the ceasiompy_exec.py script exits with an error code + print( + f"Error executing script: The script returned a non-zero exit code {e.returncode}.", + file=sys.stderr + ) + + if e.stdout: + print("--- Script stdout ---\n", e.stdout.decode(), file=sys.stderr) + + if e.stderr: + print("--- Script stderr ---\n", e.stderr.decode(), file=sys.stderr) + + sys.exit(e.returncode) # Exit the entry point with the script's error code + + except Exception as e: + # Catch any other unexpected errors + print(f"An unexpected error occurred during script execution: {e}", file=sys.stderr) + sys.exit(1) # Indicate failure + + sys.exit(0) # Indicate success diff --git a/src/streamlit/guiobjects.py b/src/CEASIOMpyStreamlit/guiobjects.py similarity index 98% rename from src/streamlit/guiobjects.py rename to src/CEASIOMpyStreamlit/guiobjects.py index ac9e0d470..6c20d7e42 100755 --- a/src/streamlit/guiobjects.py +++ b/src/CEASIOMpyStreamlit/guiobjects.py @@ -16,7 +16,7 @@ import pandas as pd import streamlit as st -from src.streamlit.streamlitutils import save_cpacs_file +from CEASIOMpyStreamlit.streamlitutils import save_cpacs_file from cpacspy.cpacsfunctions import ( get_string_vector, get_value_or_default, diff --git a/src/streamlit/moduletab.py b/src/CEASIOMpyStreamlit/moduletab.py similarity index 98% rename from src/streamlit/moduletab.py rename to src/CEASIOMpyStreamlit/moduletab.py index 6536cd5a2..d3a29604b 100755 --- a/src/streamlit/moduletab.py +++ b/src/CEASIOMpyStreamlit/moduletab.py @@ -17,9 +17,9 @@ from cpacspy.cpacsfunctions import get_value_or_default from ceasiompy.utils.geometryfunctions import get_aircrafts_list -from src.streamlit.streamlitutils import section_edit_aeromap +from CEASIOMpyStreamlit.streamlitutils import section_edit_aeromap from ceasiompy.utils.moduleinterfaces import get_specs_for_module -from src.streamlit.guiobjects import ( +from CEASIOMpyStreamlit.guiobjects import ( int_vartype, list_vartype, bool_vartype, diff --git "a/src/streamlit/pages/01_ \342\236\241_Workflow.py" "b/src/CEASIOMpyStreamlit/pages/01_ \342\236\241_Workflow.py" similarity index 100% rename from "src/streamlit/pages/01_ \342\236\241_Workflow.py" rename to "src/CEASIOMpyStreamlit/pages/01_ \342\236\241_Workflow.py" diff --git "a/src/streamlit/pages/02_\342\232\231\357\270\217_Settings.py" "b/src/CEASIOMpyStreamlit/pages/02_\342\232\231\357\270\217_Settings.py" similarity index 97% rename from "src/streamlit/pages/02_\342\232\231\357\270\217_Settings.py" rename to "src/CEASIOMpyStreamlit/pages/02_\342\232\231\357\270\217_Settings.py" index ed43a1842..bd3f59344 100755 --- "a/src/streamlit/pages/02_\342\232\231\357\270\217_Settings.py" +++ "b/src/CEASIOMpyStreamlit/pages/02_\342\232\231\357\270\217_Settings.py" @@ -18,8 +18,7 @@ import streamlit as st -from src.streamlit.moduletab import add_module_tab - +from CEASIOMpyStreamlit.moduletab import add_module_tab from streamlitutils import ( create_sidebar, save_cpacs_file, diff --git "a/src/streamlit/pages/03_\342\226\266\357\270\217_Run_Workflow.py" "b/src/CEASIOMpyStreamlit/pages/03_\342\226\266\357\270\217_Run_Workflow.py" similarity index 100% rename from "src/streamlit/pages/03_\342\226\266\357\270\217_Run_Workflow.py" rename to "src/CEASIOMpyStreamlit/pages/03_\342\226\266\357\270\217_Run_Workflow.py" diff --git "a/src/streamlit/pages/04_\360\237\223\210_Results.py" "b/src/CEASIOMpyStreamlit/pages/04_\360\237\223\210_Results.py" similarity index 100% rename from "src/streamlit/pages/04_\360\237\223\210_Results.py" rename to "src/CEASIOMpyStreamlit/pages/04_\360\237\223\210_Results.py" diff --git a/src/streamlit/runworkflow.py b/src/CEASIOMpyStreamlit/runworkflow.py similarity index 100% rename from src/streamlit/runworkflow.py rename to src/CEASIOMpyStreamlit/runworkflow.py diff --git a/src/streamlit/streamlitutils.py b/src/CEASIOMpyStreamlit/streamlitutils.py similarity index 100% rename from src/streamlit/streamlitutils.py rename to src/CEASIOMpyStreamlit/streamlitutils.py diff --git a/src/bin/CEASIOMpy.command b/src/bin/CEASIOMpy.command deleted file mode 100755 index a63de2bec..000000000 --- a/src/bin/CEASIOMpy.command +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -# Script to be run as as a clickable executable (on Mac) - -# Activate conda environment -CONDA_BASE=$(conda info --base) -source $CONDA_BASE/etc/profile.d/conda.sh -conda activate ceasiompy - -# Run CEASIOMpy -ceasiompy_run -g diff --git a/src/bin/ceasiompy_exec.py b/src/bin/ceasiompy_exec.py index c99b11e8e..6bf26e260 100755 --- a/src/bin/ceasiompy_exec.py +++ b/src/bin/ceasiompy_exec.py @@ -17,10 +17,12 @@ # IMPORTS # ================================================================================================= -import subprocess +import os import argparse +import subprocess from pathlib import Path +from argparse import Namespace from ceasiompy.utils.workflowclasses import Workflow from ceasiompy import log @@ -162,10 +164,18 @@ def run_gui(): """Create an run a workflow from a GUI.""" log.info("CEASIOMpy has been started from the GUI.") + env = os.environ.copy() + # Add the src directory to PYTHONPATH + env["PYTHONPATH"] = ( + str(Path(__file__).resolve().parents[2] / "src") + + os.pathsep + + env.get("PYTHONPATH", "") + ) subprocess.run( ["streamlit", "run", "CEASIOMpy.py"], cwd=STREAMLIT_PATH, check=True, + env=env, ) # ================================================================================================= @@ -174,6 +184,7 @@ def run_gui(): def main(): + parser = argparse.ArgumentParser( description="CEASIOMpy: Conceptual Aircraft Design Environment", usage=argparse.SUPPRESS, @@ -209,7 +220,7 @@ def main(): help="run a test case [1, 2, or 3]", ) - args = parser.parse_args() + args: Namespace = parser.parse_args() if args.testcase: run_testcase(args.testcase) diff --git a/src/bin/ceasiompy_run b/src/bin/ceasiompy_run deleted file mode 120000 index ff0b9ea55..000000000 --- a/src/bin/ceasiompy_run +++ /dev/null @@ -1 +0,0 @@ -ceasiompy_exec.py \ No newline at end of file diff --git a/src/bin/ceasiompy_run.bat b/src/bin/ceasiompy_run.bat deleted file mode 100755 index dfd1caa4f..000000000 --- a/src/bin/ceasiompy_run.bat +++ /dev/null @@ -1,43 +0,0 @@ - -:: ============================== -:: Windows launcher for CEASIOMpy -:: ============================== -:: -:: ---------------------------------------------------------------------- -:: Copyright 2017-2020 Airinnova AB and the PyTornado authors -:: -:: Licensed under the Apache License, Version 2.0 (the "License"); -:: you may not use this file except in compliance with the License. -:: You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, software -:: distributed under the License is distributed on an "AS IS" BASIS, -:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -:: See the License for the specific language governing permissions and -:: limitations under the License. -:: ---------------------------------------------------------------------- -:: -:: Adapted from PyTornado script written by Aaron Dettmann -:: -:: This BAT file allows CEASIOMpy to be run from the Windows command -:: line as 'pytornado'. All command line arguments are forwarded to -:: the Python script. -:: -:: | Reason for using this BAT file: -:: | -:: | --> Windows seems to require a file extension "*.py" in order to -:: | correctly start a Python script (without preceding 'python.exe'). -:: | BUT, a BAT file can be called as 'bat_file_name' without explicit -:: | file extension. -:: | -:: | --> Windows is easily confused with the system paths for libraries -:: | and executables. Having a library called 'abc' and an executable -:: | file called 'abc' can lead to a 'ModuleNotFoundError' -:: | - See also https://stackoverflow.com/a/44339624 - -:: Turn off command echoing feature -@echo off - -python ceasiompy_exec.py %* diff --git a/ceasiompy/.flake8 b/src/ceasiompy/.flake8 similarity index 100% rename from ceasiompy/.flake8 rename to src/ceasiompy/.flake8 diff --git a/ceasiompy/.gitignore b/src/ceasiompy/.gitignore similarity index 100% rename from ceasiompy/.gitignore rename to src/ceasiompy/.gitignore diff --git a/ceasiompy/AeroFrame/README.md b/src/ceasiompy/AeroFrame/README.md similarity index 100% rename from ceasiompy/AeroFrame/README.md rename to src/ceasiompy/AeroFrame/README.md diff --git a/ceasiompy/AeroFrame/__init__.py b/src/ceasiompy/AeroFrame/__init__.py similarity index 100% rename from ceasiompy/AeroFrame/__init__.py rename to src/ceasiompy/AeroFrame/__init__.py diff --git a/ceasiompy/AeroFrame/__specs__.py b/src/ceasiompy/AeroFrame/__specs__.py similarity index 100% rename from ceasiompy/AeroFrame/__specs__.py rename to src/ceasiompy/AeroFrame/__specs__.py diff --git a/ceasiompy/AeroFrame/aeroframe_run.py b/src/ceasiompy/AeroFrame/aeroframe_run.py similarity index 100% rename from ceasiompy/AeroFrame/aeroframe_run.py rename to src/ceasiompy/AeroFrame/aeroframe_run.py diff --git a/ceasiompy/AeroFrame/files/Spirit_of_St._Louis.jpg b/src/ceasiompy/AeroFrame/files/Spirit_of_St._Louis.jpg similarity index 100% rename from ceasiompy/AeroFrame/files/Spirit_of_St._Louis.jpg rename to src/ceasiompy/AeroFrame/files/Spirit_of_St._Louis.jpg diff --git a/ceasiompy/AeroFrame/files/avl_logo.png b/src/ceasiompy/AeroFrame/files/avl_logo.png similarity index 100% rename from ceasiompy/AeroFrame/files/avl_logo.png rename to src/ceasiompy/AeroFrame/files/avl_logo.png diff --git a/ceasiompy/AeroFrame/files/framat_logo.png b/src/ceasiompy/AeroFrame/files/framat_logo.png similarity index 100% rename from ceasiompy/AeroFrame/files/framat_logo.png rename to src/ceasiompy/AeroFrame/files/framat_logo.png diff --git a/ceasiompy/AeroFrame/func/config.py b/src/ceasiompy/AeroFrame/func/config.py similarity index 100% rename from ceasiompy/AeroFrame/func/config.py rename to src/ceasiompy/AeroFrame/func/config.py diff --git a/ceasiompy/AeroFrame/func/plot.py b/src/ceasiompy/AeroFrame/func/plot.py similarity index 100% rename from ceasiompy/AeroFrame/func/plot.py rename to src/ceasiompy/AeroFrame/func/plot.py diff --git a/ceasiompy/AeroFrame/func/results.py b/src/ceasiompy/AeroFrame/func/results.py similarity index 100% rename from ceasiompy/AeroFrame/func/results.py rename to src/ceasiompy/AeroFrame/func/results.py diff --git a/ceasiompy/AeroFrame/func/utils.py b/src/ceasiompy/AeroFrame/func/utils.py similarity index 100% rename from ceasiompy/AeroFrame/func/utils.py rename to src/ceasiompy/AeroFrame/func/utils.py diff --git a/ceasiompy/BalanceConventional/__init__.py b/src/ceasiompy/BalanceConventional/__init__.py similarity index 100% rename from ceasiompy/BalanceConventional/__init__.py rename to src/ceasiompy/BalanceConventional/__init__.py diff --git a/ceasiompy/BalanceConventional/__specs__.py b/src/ceasiompy/BalanceConventional/__specs__.py similarity index 100% rename from ceasiompy/BalanceConventional/__specs__.py rename to src/ceasiompy/BalanceConventional/__specs__.py diff --git a/ceasiompy/BalanceConventional/balanceconventional.py b/src/ceasiompy/BalanceConventional/balanceconventional.py similarity index 100% rename from ceasiompy/BalanceConventional/balanceconventional.py rename to src/ceasiompy/BalanceConventional/balanceconventional.py diff --git a/ceasiompy/BalanceConventional/func/Cog/__init__.py b/src/ceasiompy/BalanceConventional/func/AinFunc/__init__.py similarity index 100% rename from ceasiompy/BalanceConventional/func/Cog/__init__.py rename to src/ceasiompy/BalanceConventional/func/AinFunc/__init__.py diff --git a/ceasiompy/BalanceConventional/func/AinFunc/getdatafromcpacs.py b/src/ceasiompy/BalanceConventional/func/AinFunc/getdatafromcpacs.py similarity index 94% rename from ceasiompy/BalanceConventional/func/AinFunc/getdatafromcpacs.py rename to src/ceasiompy/BalanceConventional/func/AinFunc/getdatafromcpacs.py index a79ab5584..efd8a273c 100755 --- a/ceasiompy/BalanceConventional/func/AinFunc/getdatafromcpacs.py +++ b/src/ceasiompy/BalanceConventional/func/AinFunc/getdatafromcpacs.py @@ -197,13 +197,3 @@ def get_data(mw, bi, cpacs_in): tixi.save(str(cpacs_in)) return (mw, bi) - - -# ============================================================================= -# MAIN -# ============================================================================= - -if __name__ == "__main__": - print("##########################################################") - print("### ERROR NOT A STANDALONE PROGRAM, RUN balancemain.py ###") - print("##########################################################") diff --git a/ceasiompy/BalanceConventional/func/Inertia/__init__.py b/src/ceasiompy/BalanceConventional/func/AoutFunc/__init__.py similarity index 100% rename from ceasiompy/BalanceConventional/func/Inertia/__init__.py rename to src/ceasiompy/BalanceConventional/func/AoutFunc/__init__.py diff --git a/ceasiompy/BalanceConventional/func/AoutFunc/cpacsbalanceupdate.py b/src/ceasiompy/BalanceConventional/func/AoutFunc/cpacsbalanceupdate.py similarity index 99% rename from ceasiompy/BalanceConventional/func/AoutFunc/cpacsbalanceupdate.py rename to src/ceasiompy/BalanceConventional/func/AoutFunc/cpacsbalanceupdate.py index fa12ee2c5..1541e5fc0 100755 --- a/ceasiompy/BalanceConventional/func/AoutFunc/cpacsbalanceupdate.py +++ b/src/ceasiompy/BalanceConventional/func/AoutFunc/cpacsbalanceupdate.py @@ -196,8 +196,6 @@ def cpacs_mbd_update(out, mw, bi, ms_zpm, out_xml): # Saving and closing the new cpacs file inside the ToolOutput folder ----- tixi.save(out_xml) - return () - # ============================================================================= # MAIN diff --git a/ceasiompy/BalanceConventional/func/AoutFunc/outputbalancegen.py b/src/ceasiompy/BalanceConventional/func/AoutFunc/outputbalancegen.py similarity index 96% rename from ceasiompy/BalanceConventional/func/AoutFunc/outputbalancegen.py rename to src/ceasiompy/BalanceConventional/func/AoutFunc/outputbalancegen.py index 7c06e6184..0ecadb852 100755 --- a/ceasiompy/BalanceConventional/func/AoutFunc/outputbalancegen.py +++ b/src/ceasiompy/BalanceConventional/func/AoutFunc/outputbalancegen.py @@ -145,8 +145,6 @@ def output_txt(out, mw, bi, NAME): OutputTextFile.write("\n---------------------------------------" + "--------") # Closing Text File OutputTextFile.close() - return () - # ============================================================================= # PLOTS @@ -190,8 +188,6 @@ def aircraft_nodes_plot(fx, fy, fz, wx, wy, wz, NAME): FIG_NAME = "ToolOutput/" + NAME + "/" + NAME + "_Aircraft_Nodes.png" fig.savefig(FIG_NAME, dpi=300) - return () - # AIRCRAFT CoG PLOT -------------------------------------------------------- @@ -263,15 +259,3 @@ def aircraft_cog_plot(cg, ag, NAME): ) FIG_NAME = "ToolOutput/" + NAME + "/" + NAME + "_Aircraft_Cog.png" fig.savefig(FIG_NAME, dpi=500) - - return () - - -# ============================================================================= -# MAIN -# ============================================================================= - -if __name__ == "__main__": - print("##########################################################") - print("### ERROR NOT A STANDALONE PROGRAM, RUN balancemain.py ###") - print("##########################################################") diff --git a/ceasiompy/BalanceConventional/func/__init__.py b/src/ceasiompy/BalanceConventional/func/Cog/__init__.py similarity index 100% rename from ceasiompy/BalanceConventional/func/__init__.py rename to src/ceasiompy/BalanceConventional/func/Cog/__init__.py diff --git a/ceasiompy/BalanceConventional/func/Cog/centerofgravity.py b/src/ceasiompy/BalanceConventional/func/Cog/centerofgravity.py similarity index 100% rename from ceasiompy/BalanceConventional/func/Cog/centerofgravity.py rename to src/ceasiompy/BalanceConventional/func/Cog/centerofgravity.py diff --git a/ceasiompy/BalanceUnconventional/func/AinFunc/__init__.py b/src/ceasiompy/BalanceConventional/func/Inertia/__init__.py similarity index 100% rename from ceasiompy/BalanceUnconventional/func/AinFunc/__init__.py rename to src/ceasiompy/BalanceConventional/func/Inertia/__init__.py diff --git a/ceasiompy/BalanceConventional/func/Inertia/lumpedmassesinertia.py b/src/ceasiompy/BalanceConventional/func/Inertia/lumpedmassesinertia.py similarity index 100% rename from ceasiompy/BalanceConventional/func/Inertia/lumpedmassesinertia.py rename to src/ceasiompy/BalanceConventional/func/Inertia/lumpedmassesinertia.py diff --git a/ceasiompy/BalanceUnconventional/func/AoutFunc/__init__.py b/src/ceasiompy/BalanceConventional/func/__init__.py similarity index 100% rename from ceasiompy/BalanceUnconventional/func/AoutFunc/__init__.py rename to src/ceasiompy/BalanceConventional/func/__init__.py diff --git a/ceasiompy/BalanceConventional/ToolInput/.keep b/src/ceasiompy/BalanceUnconventional/ToolOutput/.keep similarity index 100% rename from ceasiompy/BalanceConventional/ToolInput/.keep rename to src/ceasiompy/BalanceUnconventional/ToolOutput/.keep diff --git a/ceasiompy/BalanceUnconventional/__init__.py b/src/ceasiompy/BalanceUnconventional/__init__.py similarity index 100% rename from ceasiompy/BalanceUnconventional/__init__.py rename to src/ceasiompy/BalanceUnconventional/__init__.py diff --git a/ceasiompy/BalanceUnconventional/__specs__.py b/src/ceasiompy/BalanceUnconventional/__specs__.py similarity index 100% rename from ceasiompy/BalanceUnconventional/__specs__.py rename to src/ceasiompy/BalanceUnconventional/__specs__.py diff --git a/ceasiompy/BalanceUnconventional/balanceunconventional.py b/src/ceasiompy/BalanceUnconventional/balanceunconventional.py similarity index 100% rename from ceasiompy/BalanceUnconventional/balanceunconventional.py rename to src/ceasiompy/BalanceUnconventional/balanceunconventional.py diff --git a/ceasiompy/BalanceUnconventional/func/Cog/__init__.py b/src/ceasiompy/BalanceUnconventional/func/AinFunc/__init__.py similarity index 100% rename from ceasiompy/BalanceUnconventional/func/Cog/__init__.py rename to src/ceasiompy/BalanceUnconventional/func/AinFunc/__init__.py diff --git a/ceasiompy/BalanceUnconventional/func/AinFunc/getdatafromcpacs.py b/src/ceasiompy/BalanceUnconventional/func/AinFunc/getdatafromcpacs.py similarity index 100% rename from ceasiompy/BalanceUnconventional/func/AinFunc/getdatafromcpacs.py rename to src/ceasiompy/BalanceUnconventional/func/AinFunc/getdatafromcpacs.py diff --git a/ceasiompy/BalanceUnconventional/func/Inertia/__init__.py b/src/ceasiompy/BalanceUnconventional/func/AoutFunc/__init__.py similarity index 100% rename from ceasiompy/BalanceUnconventional/func/Inertia/__init__.py rename to src/ceasiompy/BalanceUnconventional/func/AoutFunc/__init__.py diff --git a/ceasiompy/BalanceUnconventional/func/AoutFunc/cpacsbalanceupdate.py b/src/ceasiompy/BalanceUnconventional/func/AoutFunc/cpacsbalanceupdate.py similarity index 99% rename from ceasiompy/BalanceUnconventional/func/AoutFunc/cpacsbalanceupdate.py rename to src/ceasiompy/BalanceUnconventional/func/AoutFunc/cpacsbalanceupdate.py index ea524b3d4..6ae4acb01 100755 --- a/ceasiompy/BalanceUnconventional/func/AoutFunc/cpacsbalanceupdate.py +++ b/src/ceasiompy/BalanceUnconventional/func/AoutFunc/cpacsbalanceupdate.py @@ -199,8 +199,6 @@ def cpacs_mbd_update(out, mw, bi, ms_zpm, out_xml): # Saving and closing the new cpacs file inside the ToolOutput folder ----- tixi.save(out_xml) - return () - # ============================================================================= # MAIN diff --git a/ceasiompy/BalanceUnconventional/func/AoutFunc/outputbalancegen.py b/src/ceasiompy/BalanceUnconventional/func/AoutFunc/outputbalancegen.py similarity index 97% rename from ceasiompy/BalanceUnconventional/func/AoutFunc/outputbalancegen.py rename to src/ceasiompy/BalanceUnconventional/func/AoutFunc/outputbalancegen.py index cdc4bd2d7..dc032033a 100755 --- a/ceasiompy/BalanceUnconventional/func/AoutFunc/outputbalancegen.py +++ b/src/ceasiompy/BalanceUnconventional/func/AoutFunc/outputbalancegen.py @@ -149,14 +149,14 @@ def output_txt(bout, mw, bi, ec, NAME): # Closing Text File OutputTextFile.close() - return () - # ============================================================================= # PLOTS # ============================================================================= # AIRCRAFT NODES PLOT ------------------------------------------------------ + + def aircraft_nodes_unc_plot(fx, fy, fz, wx, wy, wz, NAME): """The function generates the plot of the aircraft nodes. INPUT @@ -194,8 +194,6 @@ def aircraft_nodes_unc_plot(fx, fy, fz, wx, wy, wz, NAME): FIG_NAME = "ToolOutput/" + NAME + "/" + NAME + "_Aircraft_Nodes.png" fig.savefig(FIG_NAME, dpi=500) - return () - def aircraft_nodes_bwb_plot(wx, wy, wz, NAME): """The function generates the plot of the aircraft nodes. @@ -226,8 +224,6 @@ def aircraft_nodes_bwb_plot(wx, wy, wz, NAME): FIG_NAME = "ToolOutput/" + NAME + "/" + NAME + "_Aircraft_Nodes.png" fig.savefig(FIG_NAME, dpi=500) - return () - # AIRCRAFT CoG PLOT -------------------------------------------------------- def aircraft_cog_unc_plot(cg, bi, ed, afg, awg, NAME): @@ -314,8 +310,6 @@ def aircraft_cog_unc_plot(cg, bi, ed, afg, awg, NAME): FIG_NAME = "ToolOutput/" + NAME + "/" + NAME + "_Aircraft_Cog.png" fig.savefig(FIG_NAME, dpi=500) - return () - def aircraft_cog_bwb_plot(cg, bi, ed, awg, NAME): """The function that generate the plot of the blended wing body @@ -384,14 +378,3 @@ def aircraft_cog_bwb_plot(cg, bi, ed, awg, NAME): ) FIG_NAME = "ToolOutput/" + NAME + "/" + NAME + "_Aircraft_Cog.png" fig.savefig(FIG_NAME, dpi=500) - - return () - - -# ============================================================================= -# MAIN -# ============================================================================= -if __name__ == "__main__": - print("###########################################################") - print("# ERROR NOT A STANDALONE PROGRAM, RUN Balance_unc_main.py #") - print("###########################################################") diff --git a/ceasiompy/BalanceUnconventional/func/__init__.py b/src/ceasiompy/BalanceUnconventional/func/Cog/__init__.py similarity index 100% rename from ceasiompy/BalanceUnconventional/func/__init__.py rename to src/ceasiompy/BalanceUnconventional/func/Cog/__init__.py diff --git a/ceasiompy/BalanceUnconventional/func/Cog/bwbcog.py b/src/ceasiompy/BalanceUnconventional/func/Cog/bwbcog.py similarity index 100% rename from ceasiompy/BalanceUnconventional/func/Cog/bwbcog.py rename to src/ceasiompy/BalanceUnconventional/func/Cog/bwbcog.py diff --git a/ceasiompy/BalanceUnconventional/func/Cog/fusecog.py b/src/ceasiompy/BalanceUnconventional/func/Cog/fusecog.py similarity index 100% rename from ceasiompy/BalanceUnconventional/func/Cog/fusecog.py rename to src/ceasiompy/BalanceUnconventional/func/Cog/fusecog.py diff --git a/ceasiompy/BalanceUnconventional/func/Cog/unccog.py b/src/ceasiompy/BalanceUnconventional/func/Cog/unccog.py similarity index 100% rename from ceasiompy/BalanceUnconventional/func/Cog/unccog.py rename to src/ceasiompy/BalanceUnconventional/func/Cog/unccog.py diff --git a/ceasiompy/CPACS2SUMO/func/__init__.py b/src/ceasiompy/BalanceUnconventional/func/Inertia/__init__.py similarity index 100% rename from ceasiompy/CPACS2SUMO/func/__init__.py rename to src/ceasiompy/BalanceUnconventional/func/Inertia/__init__.py diff --git a/ceasiompy/BalanceUnconventional/func/Inertia/lumpedmassesinertia.py b/src/ceasiompy/BalanceUnconventional/func/Inertia/lumpedmassesinertia.py similarity index 100% rename from ceasiompy/BalanceUnconventional/func/Inertia/lumpedmassesinertia.py rename to src/ceasiompy/BalanceUnconventional/func/Inertia/lumpedmassesinertia.py diff --git a/ceasiompy/BalanceUnconventional/func/Inertia/uncinertia.py b/src/ceasiompy/BalanceUnconventional/func/Inertia/uncinertia.py similarity index 100% rename from ceasiompy/BalanceUnconventional/func/Inertia/uncinertia.py rename to src/ceasiompy/BalanceUnconventional/func/Inertia/uncinertia.py diff --git a/ceasiompy/Range/func/AinFunc/__init__.py b/src/ceasiompy/BalanceUnconventional/func/__init__.py similarity index 100% rename from ceasiompy/Range/func/AinFunc/__init__.py rename to src/ceasiompy/BalanceUnconventional/func/__init__.py diff --git a/ceasiompy/CLCalculator/README.md b/src/ceasiompy/CLCalculator/README.md similarity index 100% rename from ceasiompy/CLCalculator/README.md rename to src/ceasiompy/CLCalculator/README.md diff --git a/ceasiompy/BalanceConventional/ToolOutput/.keep b/src/ceasiompy/CLCalculator/ToolInput/.keep similarity index 100% rename from ceasiompy/BalanceConventional/ToolOutput/.keep rename to src/ceasiompy/CLCalculator/ToolInput/.keep diff --git a/ceasiompy/BalanceUnconventional/ToolOutput/.keep b/src/ceasiompy/CLCalculator/ToolOutput/.keep similarity index 100% rename from ceasiompy/BalanceUnconventional/ToolOutput/.keep rename to src/ceasiompy/CLCalculator/ToolOutput/.keep diff --git a/ceasiompy/CLCalculator/__init__.py b/src/ceasiompy/CLCalculator/__init__.py similarity index 75% rename from ceasiompy/CLCalculator/__init__.py rename to src/ceasiompy/CLCalculator/__init__.py index 6475e60c4..a9c8f4d32 100755 --- a/ceasiompy/CLCalculator/__init__.py +++ b/src/ceasiompy/CLCalculator/__init__.py @@ -34,11 +34,3 @@ # ===== Add a Results Directory ===== RES_DIR = True - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/CLCalculator/__specs__.py b/src/ceasiompy/CLCalculator/__specs__.py similarity index 92% rename from ceasiompy/CLCalculator/__specs__.py rename to src/ceasiompy/CLCalculator/__specs__.py index 6a2aac4cb..c6381a681 100755 --- a/ceasiompy/CLCalculator/__specs__.py +++ b/src/ceasiompy/CLCalculator/__specs__.py @@ -142,10 +142,3 @@ descr="FIXED_CL_MODE parameter for SU2", xpath=SU2_FIXED_CL_XPATH, ) - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/CLCalculator/clcalculator.py b/src/ceasiompy/CLCalculator/clcalculator.py similarity index 100% rename from ceasiompy/CLCalculator/clcalculator.py rename to src/ceasiompy/CLCalculator/clcalculator.py diff --git a/ceasiompy/CLCalculator/doc/Calculate_CL.pdf b/src/ceasiompy/CLCalculator/doc/Calculate_CL.pdf similarity index 100% rename from ceasiompy/CLCalculator/doc/Calculate_CL.pdf rename to src/ceasiompy/CLCalculator/doc/Calculate_CL.pdf diff --git a/ceasiompy/CLCalculator/func/calculatecl.py b/src/ceasiompy/CLCalculator/func/calculatecl.py similarity index 100% rename from ceasiompy/CLCalculator/func/calculatecl.py rename to src/ceasiompy/CLCalculator/func/calculatecl.py diff --git a/ceasiompy/CLCalculator/func/utils.py b/src/ceasiompy/CLCalculator/func/utils.py similarity index 100% rename from ceasiompy/CLCalculator/func/utils.py rename to src/ceasiompy/CLCalculator/func/utils.py diff --git a/ceasiompy/CLCalculator/tests/D150_simple.xml b/src/ceasiompy/CLCalculator/tests/D150_simple.xml similarity index 100% rename from ceasiompy/CLCalculator/tests/D150_simple.xml rename to src/ceasiompy/CLCalculator/tests/D150_simple.xml diff --git a/ceasiompy/CLCalculator/tests/test_clcalculator.py b/src/ceasiompy/CLCalculator/tests/test_clcalculator.py similarity index 100% rename from ceasiompy/CLCalculator/tests/test_clcalculator.py rename to src/ceasiompy/CLCalculator/tests/test_clcalculator.py diff --git a/ceasiompy/CPACS2GMSH/README.md b/src/ceasiompy/CPACS2GMSH/README.md similarity index 100% rename from ceasiompy/CPACS2GMSH/README.md rename to src/ceasiompy/CPACS2GMSH/README.md diff --git a/ceasiompy/CPACS2GMSH/__init__.py b/src/ceasiompy/CPACS2GMSH/__init__.py similarity index 91% rename from ceasiompy/CPACS2GMSH/__init__.py rename to src/ceasiompy/CPACS2GMSH/__init__.py index 5fd338d58..a0a292c27 100755 --- a/ceasiompy/CPACS2GMSH/__init__.py +++ b/src/ceasiompy/CPACS2GMSH/__init__.py @@ -71,10 +71,3 @@ GMSH_SURFACE_MESH_SIZE_XPATH = GMSH_XPATH + "min_max_mesh_factor" GMSH_FEATURE_ANGLE_XPATH = GMSH_XPATH + "/feature_angle" GMSH_CTRLSURF_ANGLE_XPATH = GMSH_XPATH + "/DeflectionAngle" - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/CPACS2GMSH/__specs__.py b/src/ceasiompy/CPACS2GMSH/__specs__.py similarity index 97% rename from ceasiompy/CPACS2GMSH/__specs__.py rename to src/ceasiompy/CPACS2GMSH/__specs__.py index 38dbbcadc..5fec284cd 100755 --- a/ceasiompy/CPACS2GMSH/__specs__.py +++ b/src/ceasiompy/CPACS2GMSH/__specs__.py @@ -386,10 +386,3 @@ descr="Absolute path of the SU2 mesh", xpath=SU2MESH_XPATH, ) - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/CPACS2GMSH/cpacs2gmsh.py b/src/ceasiompy/CPACS2GMSH/cpacs2gmsh.py similarity index 99% rename from ceasiompy/CPACS2GMSH/cpacs2gmsh.py rename to src/ceasiompy/CPACS2GMSH/cpacs2gmsh.py index 616b56af5..3bbe5d879 100755 --- a/ceasiompy/CPACS2GMSH/cpacs2gmsh.py +++ b/src/ceasiompy/CPACS2GMSH/cpacs2gmsh.py @@ -261,4 +261,5 @@ def main(cpacs: CPACS, wkdir: Path) -> None: if __name__ == "__main__": + print call_main(main, MODULE_NAME) diff --git a/ceasiompy/CPACS2GMSH/files/GMSH_D150_sym.png b/src/ceasiompy/CPACS2GMSH/files/GMSH_D150_sym.png similarity index 100% rename from ceasiompy/CPACS2GMSH/files/GMSH_D150_sym.png rename to src/ceasiompy/CPACS2GMSH/files/GMSH_D150_sym.png diff --git a/ceasiompy/CPACS2GMSH/files/GMSH_propeller_aircraft.png b/src/ceasiompy/CPACS2GMSH/files/GMSH_propeller_aircraft.png similarity index 100% rename from ceasiompy/CPACS2GMSH/files/GMSH_propeller_aircraft.png rename to src/ceasiompy/CPACS2GMSH/files/GMSH_propeller_aircraft.png diff --git a/ceasiompy/CPACS2GMSH/func/advancemeshing.py b/src/ceasiompy/CPACS2GMSH/func/advancemeshing.py similarity index 99% rename from ceasiompy/CPACS2GMSH/func/advancemeshing.py rename to src/ceasiompy/CPACS2GMSH/func/advancemeshing.py index e95c9934f..86f346e96 100755 --- a/ceasiompy/CPACS2GMSH/func/advancemeshing.py +++ b/src/ceasiompy/CPACS2GMSH/func/advancemeshing.py @@ -784,8 +784,8 @@ def refine_surface( mesh_fields["nbfields"], "F", f"({mesh_size}/{refine}) + " - f"{mesh_size}*(1-(1/{refine}))*" - f"(F{mesh_fields['nbfields']-1}/{m})^{n_power}", + f"{mesh_size}*(1-(1/{refine})) * " + f"(F{mesh_fields['nbfields'] - 1} / {m})^{n_power}", ) # 3 : Create the restrict field diff --git a/ceasiompy/CPACS2GMSH/func/engineconversion.py b/src/ceasiompy/CPACS2GMSH/func/engineconversion.py similarity index 100% rename from ceasiompy/CPACS2GMSH/func/engineconversion.py rename to src/ceasiompy/CPACS2GMSH/func/engineconversion.py diff --git a/ceasiompy/CPACS2GMSH/func/exportbrep.py b/src/ceasiompy/CPACS2GMSH/func/exportbrep.py similarity index 100% rename from ceasiompy/CPACS2GMSH/func/exportbrep.py rename to src/ceasiompy/CPACS2GMSH/func/exportbrep.py diff --git a/ceasiompy/CPACS2GMSH/func/generategmesh.py b/src/ceasiompy/CPACS2GMSH/func/generategmesh.py similarity index 100% rename from ceasiompy/CPACS2GMSH/func/generategmesh.py rename to src/ceasiompy/CPACS2GMSH/func/generategmesh.py diff --git a/ceasiompy/CPACS2GMSH/func/mesh_sizing.py b/src/ceasiompy/CPACS2GMSH/func/mesh_sizing.py similarity index 100% rename from ceasiompy/CPACS2GMSH/func/mesh_sizing.py rename to src/ceasiompy/CPACS2GMSH/func/mesh_sizing.py diff --git a/ceasiompy/CPACS2GMSH/func/rans_mesh_generator.py b/src/ceasiompy/CPACS2GMSH/func/rans_mesh_generator.py similarity index 99% rename from ceasiompy/CPACS2GMSH/func/rans_mesh_generator.py rename to src/ceasiompy/CPACS2GMSH/func/rans_mesh_generator.py index 6046f67ac..dea854308 100755 --- a/ceasiompy/CPACS2GMSH/func/rans_mesh_generator.py +++ b/src/ceasiompy/CPACS2GMSH/func/rans_mesh_generator.py @@ -55,7 +55,6 @@ refine_end_wing, ) from ceasiompy.utils.ceasiompyutils import ( - bool_, get_reasonable_nb_cpu, get_part_type, run_software, @@ -245,7 +244,7 @@ def generate_2d_mesh_for_pentagrow( log.info( f"Mesh size fuselage={mesh_size_fuselage:.3f} m") log.info( - f"Mesh size wing={((wing_maxlen * 0.8 + wing_minlen) /2) / wing_mesh_size_factor:.3f} m") + f"Mesh size wing={((wing_maxlen * 0.8 + wing_minlen) / 2) / wing_mesh_size_factor:.3f} m") log.info(f"Mesh size engine={mesh_size_engines:.3f} m") log.info(f"Mesh size rotor={mesh_size_propellers:.3f} m") @@ -777,7 +776,9 @@ def refine_le_te_end( common_surfaces = list(set(surfaces1) & set(surfaces2) & set(surfaces_in_wing)) if len(common_points) == 2 and len(common_surfaces) == 1: log.info( - f"Found the end of wing in {model_part.uid}, refining lines {line1,line2}") + f"Found the end of wing in {model_part.uid}, " + f"refining lines {line1, line2}" + ) refine_end_wing([line1, line2], aircraft, x_chord, diff --git a/ceasiompy/CPACS2GMSH/func/utils.py b/src/ceasiompy/CPACS2GMSH/func/utils.py similarity index 100% rename from ceasiompy/CPACS2GMSH/func/utils.py rename to src/ceasiompy/CPACS2GMSH/func/utils.py diff --git a/ceasiompy/CPACS2GMSH/func/wingclassification.py b/src/ceasiompy/CPACS2GMSH/func/wingclassification.py similarity index 100% rename from ceasiompy/CPACS2GMSH/func/wingclassification.py rename to src/ceasiompy/CPACS2GMSH/func/wingclassification.py diff --git a/ceasiompy/CPACS2GMSH/tests/.gitignore b/src/ceasiompy/CPACS2GMSH/tests/.gitignore similarity index 100% rename from ceasiompy/CPACS2GMSH/tests/.gitignore rename to src/ceasiompy/CPACS2GMSH/tests/.gitignore diff --git a/ceasiompy/CPACS2GMSH/tests/ToolInput/SimpleNacelle_centerCowl.brep b/src/ceasiompy/CPACS2GMSH/tests/ToolInput/SimpleNacelle_centerCowl.brep similarity index 100% rename from ceasiompy/CPACS2GMSH/tests/ToolInput/SimpleNacelle_centerCowl.brep rename to src/ceasiompy/CPACS2GMSH/tests/ToolInput/SimpleNacelle_centerCowl.brep diff --git a/ceasiompy/CPACS2GMSH/tests/ToolInput/SimpleNacelle_fanCowl.brep b/src/ceasiompy/CPACS2GMSH/tests/ToolInput/SimpleNacelle_fanCowl.brep similarity index 100% rename from ceasiompy/CPACS2GMSH/tests/ToolInput/SimpleNacelle_fanCowl.brep rename to src/ceasiompy/CPACS2GMSH/tests/ToolInput/SimpleNacelle_fanCowl.brep diff --git a/ceasiompy/CPACS2GMSH/tests/ToolInput/config_engines.cfg b/src/ceasiompy/CPACS2GMSH/tests/ToolInput/config_engines.cfg similarity index 100% rename from ceasiompy/CPACS2GMSH/tests/ToolInput/config_engines.cfg rename to src/ceasiompy/CPACS2GMSH/tests/ToolInput/config_engines.cfg diff --git a/ceasiompy/CPACS2GMSH/tests/ToolInput/test_close_engine/SimpleEngine.brep b/src/ceasiompy/CPACS2GMSH/tests/ToolInput/test_close_engine/SimpleEngine.brep similarity index 100% rename from ceasiompy/CPACS2GMSH/tests/ToolInput/test_close_engine/SimpleEngine.brep rename to src/ceasiompy/CPACS2GMSH/tests/ToolInput/test_close_engine/SimpleEngine.brep diff --git a/ceasiompy/CPACS2GMSH/tests/ToolInput/test_close_engine/SimpleNacelle_centerCowl.brep b/src/ceasiompy/CPACS2GMSH/tests/ToolInput/test_close_engine/SimpleNacelle_centerCowl.brep similarity index 100% rename from ceasiompy/CPACS2GMSH/tests/ToolInput/test_close_engine/SimpleNacelle_centerCowl.brep rename to src/ceasiompy/CPACS2GMSH/tests/ToolInput/test_close_engine/SimpleNacelle_centerCowl.brep diff --git a/ceasiompy/CPACS2GMSH/tests/ToolInput/test_close_engine/SimpleNacelle_fanCowl.brep b/src/ceasiompy/CPACS2GMSH/tests/ToolInput/test_close_engine/SimpleNacelle_fanCowl.brep similarity index 100% rename from ceasiompy/CPACS2GMSH/tests/ToolInput/test_close_engine/SimpleNacelle_fanCowl.brep rename to src/ceasiompy/CPACS2GMSH/tests/ToolInput/test_close_engine/SimpleNacelle_fanCowl.brep diff --git a/ceasiompy/CPACS2GMSH/tests/ToolInput/test_close_engine/config_engines.cfg b/src/ceasiompy/CPACS2GMSH/tests/ToolInput/test_close_engine/config_engines.cfg similarity index 100% rename from ceasiompy/CPACS2GMSH/tests/ToolInput/test_close_engine/config_engines.cfg rename to src/ceasiompy/CPACS2GMSH/tests/ToolInput/test_close_engine/config_engines.cfg diff --git a/ceasiompy/CPACS2GMSH/tests/test_advancemeshing.py b/src/ceasiompy/CPACS2GMSH/tests/test_advancemeshing.py similarity index 96% rename from ceasiompy/CPACS2GMSH/tests/test_advancemeshing.py rename to src/ceasiompy/CPACS2GMSH/tests/test_advancemeshing.py index e3ff79520..1a5487cd1 100755 --- a/ceasiompy/CPACS2GMSH/tests/test_advancemeshing.py +++ b/src/ceasiompy/CPACS2GMSH/tests/test_advancemeshing.py @@ -300,13 +300,3 @@ def test_auto_refine(): gmsh.finalize() remove_file_type_in_dir(TEST_OUT_PATH, [".brep", ".su2", ".cfg"]) - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - print("Test CPACS2GMSH") - print("To run test use the following command:") - print(">> pytest -v") diff --git a/ceasiompy/CPACS2GMSH/tests/test_engineconversion.py b/src/ceasiompy/CPACS2GMSH/tests/test_engineconversion.py similarity index 89% rename from ceasiompy/CPACS2GMSH/tests/test_engineconversion.py rename to src/ceasiompy/CPACS2GMSH/tests/test_engineconversion.py index ee30f5371..655d2100d 100755 --- a/ceasiompy/CPACS2GMSH/tests/test_engineconversion.py +++ b/src/ceasiompy/CPACS2GMSH/tests/test_engineconversion.py @@ -89,13 +89,3 @@ def test_close_engine(): # Delete the closed engine file if TEST_DIR_PATH.exists(): shutil.rmtree(TEST_DIR_PATH) - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - print("Test CPACS2GMSH") - print("To run test use the following command:") - print(">> pytest -v") diff --git a/ceasiompy/CPACS2GMSH/tests/test_exportbrep.py b/src/ceasiompy/CPACS2GMSH/tests/test_exportbrep.py similarity index 100% rename from ceasiompy/CPACS2GMSH/tests/test_exportbrep.py rename to src/ceasiompy/CPACS2GMSH/tests/test_exportbrep.py diff --git a/ceasiompy/CPACS2GMSH/tests/test_generatemesh.py b/src/ceasiompy/CPACS2GMSH/tests/test_generatemesh.py similarity index 100% rename from ceasiompy/CPACS2GMSH/tests/test_generatemesh.py rename to src/ceasiompy/CPACS2GMSH/tests/test_generatemesh.py diff --git a/ceasiompy/CPACS2GMSH/tests/test_mesh_sizing.py b/src/ceasiompy/CPACS2GMSH/tests/test_mesh_sizing.py similarity index 82% rename from ceasiompy/CPACS2GMSH/tests/test_mesh_sizing.py rename to src/ceasiompy/CPACS2GMSH/tests/test_mesh_sizing.py index d6f878043..f4c114770 100755 --- a/ceasiompy/CPACS2GMSH/tests/test_mesh_sizing.py +++ b/src/ceasiompy/CPACS2GMSH/tests/test_mesh_sizing.py @@ -50,13 +50,3 @@ def test_wing_size(): assert wing_maxlen == approx(0.15, abs=1e-2) assert wing_minlen == approx(0.012, abs=1e-4) - -# ================================================================================================= -# MAIN -# ================================================================================================= - - -if __name__ == "__main__": - print("Test CPACS2GMSH") - print("To run test use the following command:") - print(">> pytest -v") diff --git a/ceasiompy/CPACS2GMSH/tests/test_wingclassification.py b/src/ceasiompy/CPACS2GMSH/tests/test_wingclassification.py similarity index 95% rename from ceasiompy/CPACS2GMSH/tests/test_wingclassification.py rename to src/ceasiompy/CPACS2GMSH/tests/test_wingclassification.py index 3df6c8a48..1a819b691 100755 --- a/ceasiompy/CPACS2GMSH/tests/test_wingclassification.py +++ b/src/ceasiompy/CPACS2GMSH/tests/test_wingclassification.py @@ -201,13 +201,3 @@ def test_detect_truncated_profile(): gmsh.clear() gmsh.finalize() - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - print("Test CPACS2GMSH") - print("To run test use the following command:") - print(">> pytest -v") diff --git a/ceasiompy/CPACS2SUMO/README.md b/src/ceasiompy/CPACS2SUMO/README.md similarity index 100% rename from ceasiompy/CPACS2SUMO/README.md rename to src/ceasiompy/CPACS2SUMO/README.md diff --git a/ceasiompy/CPACS2SUMO/__init__.py b/src/ceasiompy/CPACS2SUMO/__init__.py similarity index 81% rename from ceasiompy/CPACS2SUMO/__init__.py rename to src/ceasiompy/CPACS2SUMO/__init__.py index 1b052e0fe..1a6b50019 100755 --- a/ceasiompy/CPACS2SUMO/__init__.py +++ b/src/ceasiompy/CPACS2SUMO/__init__.py @@ -42,11 +42,3 @@ CPACS2SUMO_INCLUDE_PYLON_XPATH = CPACS2SUMO_XPATH + "/engine/includePylon" CPACS2SUMO_INCLUDE_ENGINE_XPATH = CPACS2SUMO_XPATH + "/engine/includeEngine" CPACS2SUMOFILE_XPATH = CPACS2SUMO_XPATH + "/filesPath/sumoFilePath" - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/CPACS2SUMO/__specs__.py b/src/ceasiompy/CPACS2SUMO/__specs__.py similarity index 89% rename from ceasiompy/CPACS2SUMO/__specs__.py rename to src/ceasiompy/CPACS2SUMO/__specs__.py index fd9c9359b..16b35d000 100755 --- a/ceasiompy/CPACS2SUMO/__specs__.py +++ b/src/ceasiompy/CPACS2SUMO/__specs__.py @@ -83,10 +83,3 @@ descr="Path to the SUMO file generated by CPACS2SUMO", xpath=CPACS2SUMOFILE_XPATH, ) - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/CPACS2SUMO/files/CPACS_3_0_ Documentation.chm b/src/ceasiompy/CPACS2SUMO/files/CPACS_3_0_ Documentation.chm similarity index 100% rename from ceasiompy/CPACS2SUMO/files/CPACS_3_0_ Documentation.chm rename to src/ceasiompy/CPACS2SUMO/files/CPACS_3_0_ Documentation.chm diff --git a/ceasiompy/CPACS2SUMO/files/simpletest_cpacs2sumo.xml b/src/ceasiompy/CPACS2SUMO/files/simpletest_cpacs2sumo.xml similarity index 100% rename from ceasiompy/CPACS2SUMO/files/simpletest_cpacs2sumo.xml rename to src/ceasiompy/CPACS2SUMO/files/simpletest_cpacs2sumo.xml diff --git a/ceasiompy/CPACS2SUMO/files/sumo_empty.smx b/src/ceasiompy/CPACS2SUMO/files/sumo_empty.smx similarity index 100% rename from ceasiompy/CPACS2SUMO/files/sumo_empty.smx rename to src/ceasiompy/CPACS2SUMO/files/sumo_empty.smx diff --git a/ceasiompy/Range/func/AoutFunc/__init__.py b/src/ceasiompy/CPACS2SUMO/func/__init__.py similarity index 100% rename from ceasiompy/Range/func/AoutFunc/__init__.py rename to src/ceasiompy/CPACS2SUMO/func/__init__.py diff --git a/ceasiompy/CPACS2SUMO/func/cst2coord.py b/src/ceasiompy/CPACS2SUMO/func/cst2coord.py similarity index 100% rename from ceasiompy/CPACS2SUMO/func/cst2coord.py rename to src/ceasiompy/CPACS2SUMO/func/cst2coord.py diff --git a/ceasiompy/CPACS2SUMO/func/engineclasses.py b/src/ceasiompy/CPACS2SUMO/func/engineclasses.py similarity index 100% rename from ceasiompy/CPACS2SUMO/func/engineclasses.py rename to src/ceasiompy/CPACS2SUMO/func/engineclasses.py diff --git a/ceasiompy/CPACS2SUMO/func/getprofile.py b/src/ceasiompy/CPACS2SUMO/func/getprofile.py similarity index 100% rename from ceasiompy/CPACS2SUMO/func/getprofile.py rename to src/ceasiompy/CPACS2SUMO/func/getprofile.py diff --git a/ceasiompy/CPACS2SUMO/func/sumofunctions.py b/src/ceasiompy/CPACS2SUMO/func/sumofunctions.py similarity index 100% rename from ceasiompy/CPACS2SUMO/func/sumofunctions.py rename to src/ceasiompy/CPACS2SUMO/func/sumofunctions.py diff --git a/ceasiompy/CPACS2SUMO/tests/test_cpacs2sumo.py b/src/ceasiompy/CPACS2SUMO/tests/test_cpacs2sumo.py similarity index 100% rename from ceasiompy/CPACS2SUMO/tests/test_cpacs2sumo.py rename to src/ceasiompy/CPACS2SUMO/tests/test_cpacs2sumo.py diff --git a/ceasiompy/CPACSCreator/README.md b/src/ceasiompy/CPACSCreator/README.md similarity index 100% rename from ceasiompy/CPACSCreator/README.md rename to src/ceasiompy/CPACSCreator/README.md diff --git a/ceasiompy/CPACSCreator/__init__.py b/src/ceasiompy/CPACSCreator/__init__.py similarity index 75% rename from ceasiompy/CPACSCreator/__init__.py rename to src/ceasiompy/CPACSCreator/__init__.py index 1da43257b..c76e00dfe 100755 --- a/ceasiompy/CPACSCreator/__init__.py +++ b/src/ceasiompy/CPACSCreator/__init__.py @@ -34,11 +34,3 @@ # ===== Include Module's name ===== MODULE_DIR = Path(__file__).parent MODULE_NAME = MODULE_DIR.name - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/CPACSCreator/__specs__.py b/src/ceasiompy/CPACSCreator/__specs__.py similarity index 70% rename from ceasiompy/CPACSCreator/__specs__.py rename to src/ceasiompy/CPACSCreator/__specs__.py index a9701cc5f..92be8cb43 100755 --- a/ceasiompy/CPACSCreator/__specs__.py +++ b/src/ceasiompy/CPACSCreator/__specs__.py @@ -24,10 +24,3 @@ # ============================================================================== cpacs_inout = CPACSInOut() - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/CPACSCreator/cpacscreator.py b/src/ceasiompy/CPACSCreator/cpacscreator.py similarity index 100% rename from ceasiompy/CPACSCreator/cpacscreator.py rename to src/ceasiompy/CPACSCreator/cpacscreator.py diff --git a/ceasiompy/CPACSUpdater/README.md b/src/ceasiompy/CPACSUpdater/README.md similarity index 100% rename from ceasiompy/CPACSUpdater/README.md rename to src/ceasiompy/CPACSUpdater/README.md diff --git a/ceasiompy/CPACSUpdater/__init__.py b/src/ceasiompy/CPACSUpdater/__init__.py similarity index 82% rename from ceasiompy/CPACSUpdater/__init__.py rename to src/ceasiompy/CPACSUpdater/__init__.py index e99d9926f..a717be76c 100755 --- a/ceasiompy/CPACSUpdater/__init__.py +++ b/src/ceasiompy/CPACSUpdater/__init__.py @@ -44,10 +44,3 @@ CPACSUPDATER_CTRLSURF_XPATH = CPACSUPDATER_XPATH + "/CtrlSurf" CPACSUPDATER_ADD_CTRLSURFACES_XPATH = CEASIOMPY_XPATH + "/AddControlSurfaces" CPACSUPDATER_CPACSCREATOR_XPATH = CPACSUPDATER_XPATH + "/CPACSCreator" - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/CPACSUpdater/__specs__.py b/src/ceasiompy/CPACSUpdater/__specs__.py similarity index 87% rename from ceasiompy/CPACSUpdater/__specs__.py rename to src/ceasiompy/CPACSUpdater/__specs__.py index 428fbe480..861ce4e2c 100755 --- a/ceasiompy/CPACSUpdater/__specs__.py +++ b/src/ceasiompy/CPACSUpdater/__specs__.py @@ -65,11 +65,3 @@ gui_name=f"Control Surface for segment {segment_name} of wing {wing_name}", gui_group='Control Surfaces Settings', ) - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/CPACSUpdater/cpacsupdater.py b/src/ceasiompy/CPACSUpdater/cpacsupdater.py similarity index 100% rename from ceasiompy/CPACSUpdater/cpacsupdater.py rename to src/ceasiompy/CPACSUpdater/cpacsupdater.py diff --git a/ceasiompy/CPACSUpdater/files/aileron.png b/src/ceasiompy/CPACSUpdater/files/aileron.png similarity index 100% rename from ceasiompy/CPACSUpdater/files/aileron.png rename to src/ceasiompy/CPACSUpdater/files/aileron.png diff --git a/ceasiompy/CPACSUpdater/files/ctrlsurf.png b/src/ceasiompy/CPACSUpdater/files/ctrlsurf.png similarity index 100% rename from ceasiompy/CPACSUpdater/files/ctrlsurf.png rename to src/ceasiompy/CPACSUpdater/files/ctrlsurf.png diff --git a/ceasiompy/CPACSUpdater/files/fowlerflap.png b/src/ceasiompy/CPACSUpdater/files/fowlerflap.png similarity index 100% rename from ceasiompy/CPACSUpdater/files/fowlerflap.png rename to src/ceasiompy/CPACSUpdater/files/fowlerflap.png diff --git a/ceasiompy/CPACSUpdater/func/controlsurfaces.py b/src/ceasiompy/CPACSUpdater/func/controlsurfaces.py similarity index 100% rename from ceasiompy/CPACSUpdater/func/controlsurfaces.py rename to src/ceasiompy/CPACSUpdater/func/controlsurfaces.py diff --git a/ceasiompy/CPACSUpdater/func/utils.py b/src/ceasiompy/CPACSUpdater/func/utils.py similarity index 100% rename from ceasiompy/CPACSUpdater/func/utils.py rename to src/ceasiompy/CPACSUpdater/func/utils.py diff --git a/ceasiompy/Database/README.md b/src/ceasiompy/Database/README.md similarity index 100% rename from ceasiompy/Database/README.md rename to src/ceasiompy/Database/README.md diff --git a/ceasiompy/Database/__init__.py b/src/ceasiompy/Database/__init__.py similarity index 78% rename from ceasiompy/Database/__init__.py rename to src/ceasiompy/Database/__init__.py index 0cb52ab66..b20bee7ef 100755 --- a/ceasiompy/Database/__init__.py +++ b/src/ceasiompy/Database/__init__.py @@ -39,10 +39,3 @@ # xPaths DATABASE_XPATH = CEASIOMPY_XPATH + "/Database" DATABASE_STOREDATA_XPATH = DATABASE_XPATH + "/StoreData" - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/Database/__specs__.py b/src/ceasiompy/Database/__specs__.py similarity index 80% rename from ceasiompy/Database/__specs__.py rename to src/ceasiompy/Database/__specs__.py index 38ef922cc..8013f13f3 100755 --- a/ceasiompy/Database/__specs__.py +++ b/src/ceasiompy/Database/__specs__.py @@ -43,10 +43,3 @@ gui_name="Store data", gui_group="Storing Settings", ) - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/Database/database.py b/src/ceasiompy/Database/database.py similarity index 100% rename from ceasiompy/Database/database.py rename to src/ceasiompy/Database/database.py diff --git a/src/ceasiompy/Database/databases/ceasiompy.db b/src/ceasiompy/Database/databases/ceasiompy.db new file mode 100644 index 000000000..e06a887d5 Binary files /dev/null and b/src/ceasiompy/Database/databases/ceasiompy.db differ diff --git a/ceasiompy/Database/func/__init__.py b/src/ceasiompy/Database/func/__init__.py similarity index 100% rename from ceasiompy/Database/func/__init__.py rename to src/ceasiompy/Database/func/__init__.py diff --git a/ceasiompy/Database/func/cpacs2gmsh.py b/src/ceasiompy/Database/func/cpacs2gmsh.py similarity index 100% rename from ceasiompy/Database/func/cpacs2gmsh.py rename to src/ceasiompy/Database/func/cpacs2gmsh.py diff --git a/ceasiompy/Database/func/dynamicstability.py b/src/ceasiompy/Database/func/dynamicstability.py similarity index 100% rename from ceasiompy/Database/func/dynamicstability.py rename to src/ceasiompy/Database/func/dynamicstability.py diff --git a/ceasiompy/Database/func/pyavl.py b/src/ceasiompy/Database/func/pyavl.py similarity index 100% rename from ceasiompy/Database/func/pyavl.py rename to src/ceasiompy/Database/func/pyavl.py diff --git a/ceasiompy/Database/func/storing.py b/src/ceasiompy/Database/func/storing.py similarity index 100% rename from ceasiompy/Database/func/storing.py rename to src/ceasiompy/Database/func/storing.py diff --git a/ceasiompy/Database/func/su2run.py b/src/ceasiompy/Database/func/su2run.py similarity index 100% rename from ceasiompy/Database/func/su2run.py rename to src/ceasiompy/Database/func/su2run.py diff --git a/ceasiompy/Database/func/utils.py b/src/ceasiompy/Database/func/utils.py similarity index 100% rename from ceasiompy/Database/func/utils.py rename to src/ceasiompy/Database/func/utils.py diff --git a/ceasiompy/Database/tests/databases/testceasiompy.db b/src/ceasiompy/Database/tests/databases/testceasiompy.db similarity index 100% rename from ceasiompy/Database/tests/databases/testceasiompy.db rename to src/ceasiompy/Database/tests/databases/testceasiompy.db diff --git a/ceasiompy/Database/tests/test_database_utils.py b/src/ceasiompy/Database/tests/test_database_utils.py similarity index 100% rename from ceasiompy/Database/tests/test_database_utils.py rename to src/ceasiompy/Database/tests/test_database_utils.py diff --git a/ceasiompy/DynamicStability/README.md b/src/ceasiompy/DynamicStability/README.md similarity index 100% rename from ceasiompy/DynamicStability/README.md rename to src/ceasiompy/DynamicStability/README.md diff --git a/ceasiompy/DynamicStability/__init__.py b/src/ceasiompy/DynamicStability/__init__.py similarity index 86% rename from ceasiompy/DynamicStability/__init__.py rename to src/ceasiompy/DynamicStability/__init__.py index 77c94fa17..98b69bb03 100755 --- a/ceasiompy/DynamicStability/__init__.py +++ b/src/ceasiompy/DynamicStability/__init__.py @@ -57,11 +57,3 @@ DYNAMICSTABILITY_CGRID_XPATH = DYNAMICSTABILITY_XPATH + "/CGrid" DYNAMICSTABILITY_SOFTWARE_XPATH = DYNAMICSTABILITY_XPATH + "/Software" DYNAMICSTABILITY_MACHLIST_XPATH = DYNAMICSTABILITY_XPATH + "/Mach" - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/DynamicStability/__specs__.py b/src/ceasiompy/DynamicStability/__specs__.py similarity index 92% rename from ceasiompy/DynamicStability/__specs__.py rename to src/ceasiompy/DynamicStability/__specs__.py index 9972d8424..bb3b62cd5 100755 --- a/ceasiompy/DynamicStability/__specs__.py +++ b/src/ceasiompy/DynamicStability/__specs__.py @@ -111,10 +111,3 @@ gui_name="cGrid path", gui_group="cGrid Setting", ) - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/DynamicStability/dynamicstability.py b/src/ceasiompy/DynamicStability/dynamicstability.py similarity index 100% rename from ceasiompy/DynamicStability/dynamicstability.py rename to src/ceasiompy/DynamicStability/dynamicstability.py diff --git a/ceasiompy/DynamicStability/func/SDSAEmpty.xml b/src/ceasiompy/DynamicStability/func/SDSAEmpty.xml similarity index 100% rename from ceasiompy/DynamicStability/func/SDSAEmpty.xml rename to src/ceasiompy/DynamicStability/func/SDSAEmpty.xml diff --git a/ceasiompy/DynamicStability/func/__init__.py b/src/ceasiompy/DynamicStability/func/__init__.py similarity index 85% rename from ceasiompy/DynamicStability/func/__init__.py rename to src/ceasiompy/DynamicStability/func/__init__.py index ea668a56a..393715024 100755 --- a/ceasiompy/DynamicStability/func/__init__.py +++ b/src/ceasiompy/DynamicStability/func/__init__.py @@ -54,10 +54,3 @@ (AERO_XPATH + "/CLBetaPrim", "cl_betaprim"), (AERO_XPATH + "/CNBetaPrim", "cn_betaprim"), ] - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/DynamicStability/func/alphamax.py b/src/ceasiompy/DynamicStability/func/alphamax.py similarity index 100% rename from ceasiompy/DynamicStability/func/alphamax.py rename to src/ceasiompy/DynamicStability/func/alphamax.py diff --git a/ceasiompy/DynamicStability/func/cpacs2sdsa.py b/src/ceasiompy/DynamicStability/func/cpacs2sdsa.py similarity index 100% rename from ceasiompy/DynamicStability/func/cpacs2sdsa.py rename to src/ceasiompy/DynamicStability/func/cpacs2sdsa.py diff --git a/ceasiompy/DynamicStability/func/dotderivatives.py b/src/ceasiompy/DynamicStability/func/dotderivatives.py similarity index 100% rename from ceasiompy/DynamicStability/func/dotderivatives.py rename to src/ceasiompy/DynamicStability/func/dotderivatives.py diff --git a/ceasiompy/DynamicStability/func/panelaeroconfig.py b/src/ceasiompy/DynamicStability/func/panelaeroconfig.py similarity index 100% rename from ceasiompy/DynamicStability/func/panelaeroconfig.py rename to src/ceasiompy/DynamicStability/func/panelaeroconfig.py diff --git a/ceasiompy/DynamicStability/func/steadyderivatives.py b/src/ceasiompy/DynamicStability/func/steadyderivatives.py similarity index 100% rename from ceasiompy/DynamicStability/func/steadyderivatives.py rename to src/ceasiompy/DynamicStability/func/steadyderivatives.py diff --git a/ceasiompy/DynamicStability/func/utils.py b/src/ceasiompy/DynamicStability/func/utils.py similarity index 100% rename from ceasiompy/DynamicStability/func/utils.py rename to src/ceasiompy/DynamicStability/func/utils.py diff --git a/ceasiompy/ExportCSV/README.md b/src/ceasiompy/ExportCSV/README.md similarity index 100% rename from ceasiompy/ExportCSV/README.md rename to src/ceasiompy/ExportCSV/README.md diff --git a/ceasiompy/ExportCSV/__init__.py b/src/ceasiompy/ExportCSV/__init__.py similarity index 75% rename from ceasiompy/ExportCSV/__init__.py rename to src/ceasiompy/ExportCSV/__init__.py index 56f9c2f7d..f16fef0fc 100755 --- a/ceasiompy/ExportCSV/__init__.py +++ b/src/ceasiompy/ExportCSV/__init__.py @@ -34,11 +34,3 @@ # ===== Include Module's name ===== MODULE_DIR = Path(__file__).parent MODULE_NAME = MODULE_DIR.name - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/ExportCSV/__specs__.py b/src/ceasiompy/ExportCSV/__specs__.py similarity index 80% rename from ceasiompy/ExportCSV/__specs__.py rename to src/ceasiompy/ExportCSV/__specs__.py index 8f46a81bc..e5f0d1d17 100755 --- a/ceasiompy/ExportCSV/__specs__.py +++ b/src/ceasiompy/ExportCSV/__specs__.py @@ -40,10 +40,3 @@ gui_name="__AEROMAP_CHECKBOX", gui_group="Aeromap settings", ) - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/ExportCSV/exportcsv.py b/src/ceasiompy/ExportCSV/exportcsv.py similarity index 100% rename from ceasiompy/ExportCSV/exportcsv.py rename to src/ceasiompy/ExportCSV/exportcsv.py diff --git a/ceasiompy/ExportCSV/tests/D150_simple.xml b/src/ceasiompy/ExportCSV/tests/D150_simple.xml similarity index 100% rename from ceasiompy/ExportCSV/tests/D150_simple.xml rename to src/ceasiompy/ExportCSV/tests/D150_simple.xml diff --git a/ceasiompy/ExportCSV/tests/test_exportcsv.py b/src/ceasiompy/ExportCSV/tests/test_exportcsv.py similarity index 100% rename from ceasiompy/ExportCSV/tests/test_exportcsv.py rename to src/ceasiompy/ExportCSV/tests/test_exportcsv.py diff --git a/ceasiompy/ModuleTemplate/README.md b/src/ceasiompy/ModuleTemplate/README.md similarity index 100% rename from ceasiompy/ModuleTemplate/README.md rename to src/ceasiompy/ModuleTemplate/README.md diff --git a/ceasiompy/ModuleTemplate/__init__.py b/src/ceasiompy/ModuleTemplate/__init__.py similarity index 79% rename from ceasiompy/ModuleTemplate/__init__.py rename to src/ceasiompy/ModuleTemplate/__init__.py index b32209da1..ea6dbfc85 100755 --- a/ceasiompy/ModuleTemplate/__init__.py +++ b/src/ceasiompy/ModuleTemplate/__init__.py @@ -39,11 +39,3 @@ # MODULE_NAME == 'ModuleTemplate'. MODULE_DIR = Path(__file__).parent MODULE_NAME = MODULE_DIR.name - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/ModuleTemplate/__specs__.py b/src/ceasiompy/ModuleTemplate/__specs__.py similarity index 89% rename from ceasiompy/ModuleTemplate/__specs__.py rename to src/ceasiompy/ModuleTemplate/__specs__.py index 75f2474c0..8e73603df 100755 --- a/ceasiompy/ModuleTemplate/__specs__.py +++ b/src/ceasiompy/ModuleTemplate/__specs__.py @@ -84,10 +84,3 @@ descr="Description of the output", xpath=CEASIOMPY_XPATH + "/test/myOutput", ) - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/ModuleTemplate/files/Spirit_of_St._Louis.jpg b/src/ceasiompy/ModuleTemplate/files/Spirit_of_St._Louis.jpg similarity index 100% rename from ceasiompy/ModuleTemplate/files/Spirit_of_St._Louis.jpg rename to src/ceasiompy/ModuleTemplate/files/Spirit_of_St._Louis.jpg diff --git a/ceasiompy/ModuleTemplate/func/subfunc.py b/src/ceasiompy/ModuleTemplate/func/subfunc.py similarity index 100% rename from ceasiompy/ModuleTemplate/func/subfunc.py rename to src/ceasiompy/ModuleTemplate/func/subfunc.py diff --git a/ceasiompy/ModuleTemplate/moduletemplate.py b/src/ceasiompy/ModuleTemplate/moduletemplate.py similarity index 100% rename from ceasiompy/ModuleTemplate/moduletemplate.py rename to src/ceasiompy/ModuleTemplate/moduletemplate.py diff --git a/ceasiompy/AeroFrame/tests/ToolInput/simpletest_cpacs.xml b/src/ceasiompy/ModuleTemplate/tests/ToolInput/simpletest_cpacs.xml similarity index 100% rename from ceasiompy/AeroFrame/tests/ToolInput/simpletest_cpacs.xml rename to src/ceasiompy/ModuleTemplate/tests/ToolInput/simpletest_cpacs.xml diff --git a/ceasiompy/CLCalculator/ToolInput/.keep b/src/ceasiompy/ModuleTemplate/tests/ToolOutput/.keep similarity index 100% rename from ceasiompy/CLCalculator/ToolInput/.keep rename to src/ceasiompy/ModuleTemplate/tests/ToolOutput/.keep diff --git a/ceasiompy/ModuleTemplate/tests/test_moduletemplate.py b/src/ceasiompy/ModuleTemplate/tests/test_moduletemplate.py similarity index 100% rename from ceasiompy/ModuleTemplate/tests/test_moduletemplate.py rename to src/ceasiompy/ModuleTemplate/tests/test_moduletemplate.py diff --git a/ceasiompy/PyAVL/README.md b/src/ceasiompy/PyAVL/README.md similarity index 100% rename from ceasiompy/PyAVL/README.md rename to src/ceasiompy/PyAVL/README.md diff --git a/ceasiompy/PyAVL/__init__.py b/src/ceasiompy/PyAVL/__init__.py similarity index 88% rename from ceasiompy/PyAVL/__init__.py rename to src/ceasiompy/PyAVL/__init__.py index 4073b4674..1b3513281 100755 --- a/ceasiompy/PyAVL/__init__.py +++ b/src/ceasiompy/PyAVL/__init__.py @@ -74,10 +74,3 @@ # Specific for Dynamic Stability computation AVL_EXPAND_VALUES_XPATH = AVL_XPATH + "/ExpandValues" - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/PyAVL/__specs__.py b/src/ceasiompy/PyAVL/__specs__.py similarity index 94% rename from ceasiompy/PyAVL/__specs__.py rename to src/ceasiompy/PyAVL/__specs__.py index d582d80f1..a73b79bda 100755 --- a/ceasiompy/PyAVL/__specs__.py +++ b/src/ceasiompy/PyAVL/__specs__.py @@ -197,10 +197,3 @@ gui_group="Values Expansion", expanded=False, ) - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/PyAVL/files/avl_example.png b/src/ceasiompy/PyAVL/files/avl_example.png similarity index 100% rename from ceasiompy/PyAVL/files/avl_example.png rename to src/ceasiompy/PyAVL/files/avl_example.png diff --git a/ceasiompy/PyAVL/files/avl_example_loads.png b/src/ceasiompy/PyAVL/files/avl_example_loads.png similarity index 100% rename from ceasiompy/PyAVL/files/avl_example_loads.png rename to src/ceasiompy/PyAVL/files/avl_example_loads.png diff --git a/ceasiompy/PyAVL/files/avl_logo.png b/src/ceasiompy/PyAVL/files/avl_logo.png similarity index 100% rename from ceasiompy/PyAVL/files/avl_logo.png rename to src/ceasiompy/PyAVL/files/avl_logo.png diff --git a/ceasiompy/PyAVL/files/template.mass b/src/ceasiompy/PyAVL/files/template.mass similarity index 100% rename from ceasiompy/PyAVL/files/template.mass rename to src/ceasiompy/PyAVL/files/template.mass diff --git a/ceasiompy/PyAVL/func/__init__.py b/src/ceasiompy/PyAVL/func/__init__.py similarity index 100% rename from ceasiompy/PyAVL/func/__init__.py rename to src/ceasiompy/PyAVL/func/__init__.py diff --git a/ceasiompy/PyAVL/func/config.py b/src/ceasiompy/PyAVL/func/config.py similarity index 100% rename from ceasiompy/PyAVL/func/config.py rename to src/ceasiompy/PyAVL/func/config.py diff --git a/ceasiompy/PyAVL/func/cpacs2avl.py b/src/ceasiompy/PyAVL/func/cpacs2avl.py similarity index 100% rename from ceasiompy/PyAVL/func/cpacs2avl.py rename to src/ceasiompy/PyAVL/func/cpacs2avl.py diff --git a/ceasiompy/PyAVL/func/plot.py b/src/ceasiompy/PyAVL/func/plot.py similarity index 100% rename from ceasiompy/PyAVL/func/plot.py rename to src/ceasiompy/PyAVL/func/plot.py diff --git a/ceasiompy/PyAVL/func/results.py b/src/ceasiompy/PyAVL/func/results.py similarity index 100% rename from ceasiompy/PyAVL/func/results.py rename to src/ceasiompy/PyAVL/func/results.py diff --git a/ceasiompy/PyAVL/func/utils.py b/src/ceasiompy/PyAVL/func/utils.py similarity index 100% rename from ceasiompy/PyAVL/func/utils.py rename to src/ceasiompy/PyAVL/func/utils.py diff --git a/ceasiompy/PyAVL/pyavl.py b/src/ceasiompy/PyAVL/pyavl.py similarity index 100% rename from ceasiompy/PyAVL/pyavl.py rename to src/ceasiompy/PyAVL/pyavl.py diff --git a/ceasiompy/PyAVL/tests/aircraft.avl b/src/ceasiompy/PyAVL/tests/aircraft.avl similarity index 100% rename from ceasiompy/PyAVL/tests/aircraft.avl rename to src/ceasiompy/PyAVL/tests/aircraft.avl diff --git a/ceasiompy/PyAVL/tests/avl_command_template.txt b/src/ceasiompy/PyAVL/tests/avl_command_template.txt similarity index 100% rename from ceasiompy/PyAVL/tests/avl_command_template.txt rename to src/ceasiompy/PyAVL/tests/avl_command_template.txt diff --git a/ceasiompy/PyAVL/tests/fs_template.txt b/src/ceasiompy/PyAVL/tests/fs_template.txt similarity index 100% rename from ceasiompy/PyAVL/tests/fs_template.txt rename to src/ceasiompy/PyAVL/tests/fs_template.txt diff --git a/ceasiompy/PyAVL/tests/ft_template.txt b/src/ceasiompy/PyAVL/tests/ft_template.txt similarity index 100% rename from ceasiompy/PyAVL/tests/ft_template.txt rename to src/ceasiompy/PyAVL/tests/ft_template.txt diff --git a/ceasiompy/PyAVL/tests/st_template.txt b/src/ceasiompy/PyAVL/tests/st_template.txt similarity index 100% rename from ceasiompy/PyAVL/tests/st_template.txt rename to src/ceasiompy/PyAVL/tests/st_template.txt diff --git a/ceasiompy/PyAVL/tests/test_pyavl_config.py b/src/ceasiompy/PyAVL/tests/test_pyavl_config.py similarity index 100% rename from ceasiompy/PyAVL/tests/test_pyavl_config.py rename to src/ceasiompy/PyAVL/tests/test_pyavl_config.py diff --git a/ceasiompy/PyAVL/tests/test_pyavl_results.py b/src/ceasiompy/PyAVL/tests/test_pyavl_results.py similarity index 100% rename from ceasiompy/PyAVL/tests/test_pyavl_results.py rename to src/ceasiompy/PyAVL/tests/test_pyavl_results.py diff --git a/ceasiompy/CLCalculator/ToolOutput/.keep b/src/ceasiompy/Range/ToolInput/.keep similarity index 100% rename from ceasiompy/CLCalculator/ToolOutput/.keep rename to src/ceasiompy/Range/ToolInput/.keep diff --git a/ceasiompy/Range/ToolInput/unconv.temp b/src/ceasiompy/Range/ToolInput/unconv.temp similarity index 100% rename from ceasiompy/Range/ToolInput/unconv.temp rename to src/ceasiompy/Range/ToolInput/unconv.temp diff --git a/ceasiompy/Range/__init__.py b/src/ceasiompy/Range/__init__.py similarity index 100% rename from ceasiompy/Range/__init__.py rename to src/ceasiompy/Range/__init__.py diff --git a/ceasiompy/Range/__specs__.py b/src/ceasiompy/Range/__specs__.py similarity index 100% rename from ceasiompy/Range/__specs__.py rename to src/ceasiompy/Range/__specs__.py diff --git a/ceasiompy/Range/func/Crew/__init__.py b/src/ceasiompy/Range/func/AinFunc/__init__.py similarity index 100% rename from ceasiompy/Range/func/Crew/__init__.py rename to src/ceasiompy/Range/func/AinFunc/__init__.py diff --git a/ceasiompy/Range/func/AinFunc/getdatafromcpacs.py b/src/ceasiompy/Range/func/AinFunc/getdatafromcpacs.py similarity index 95% rename from ceasiompy/Range/func/AinFunc/getdatafromcpacs.py rename to src/ceasiompy/Range/func/AinFunc/getdatafromcpacs.py index 1ecd74426..ace49a40b 100755 --- a/ceasiompy/Range/func/AinFunc/getdatafromcpacs.py +++ b/src/ceasiompy/Range/func/AinFunc/getdatafromcpacs.py @@ -198,13 +198,3 @@ def get_data(mw, ri, cpacs_in): tixi.save(cpacs_in) return (mw, ri) - - -# ============================================================================= -# MAIN -# ============================================================================= - -if __name__ == "__main__": - print("##########################################################") - print("#### ERROR NOT A STANDALONE PROGRAM, RUN rangemain.py ####") - print("##########################################################") diff --git a/ceasiompy/Range/func/Fuel/__init__.py b/src/ceasiompy/Range/func/AoutFunc/__init__.py similarity index 100% rename from ceasiompy/Range/func/Fuel/__init__.py rename to src/ceasiompy/Range/func/AoutFunc/__init__.py diff --git a/ceasiompy/Range/func/AoutFunc/cpacsrangeupdate.py b/src/ceasiompy/Range/func/AoutFunc/cpacsrangeupdate.py similarity index 100% rename from ceasiompy/Range/func/AoutFunc/cpacsrangeupdate.py rename to src/ceasiompy/Range/func/AoutFunc/cpacsrangeupdate.py diff --git a/ceasiompy/Range/func/AoutFunc/outputrangegen.py b/src/ceasiompy/Range/func/AoutFunc/outputrangegen.py similarity index 95% rename from ceasiompy/Range/func/AoutFunc/outputrangegen.py rename to src/ceasiompy/Range/func/AoutFunc/outputrangegen.py index 9646d3267..9b0165e81 100755 --- a/ceasiompy/Range/func/AoutFunc/outputrangegen.py +++ b/src/ceasiompy/Range/func/AoutFunc/outputrangegen.py @@ -135,8 +135,6 @@ def output_txt(LDloi, LDcru, mw, ri, out, NAME): # Closing Text File OutputTextFile.close() - return () - # ============================================================================= # PLOTS @@ -235,15 +233,3 @@ def payload_range_plot(ranges, ranges_cru, payloads, mw, NAME): FIG_NAME = os.path.join("ToolOutput", NAME, NAME + "_Payload_vs_Range.png") fig.savefig(FIG_NAME, dpi=300) - - return () - - -# ============================================================================= -# MAIN -# ============================================================================= - -if __name__ == "__main__": - print("##########################################################") - print("#### ERROR NOT A STANDALONE PROGRAM, RUN rangemain.py ####") - print("##########################################################") diff --git a/ceasiompy/Range/func/RangeEstimation/__init__.py b/src/ceasiompy/Range/func/Crew/__init__.py similarity index 100% rename from ceasiompy/Range/func/RangeEstimation/__init__.py rename to src/ceasiompy/Range/func/Crew/__init__.py diff --git a/ceasiompy/Range/func/Crew/crewmembers.py b/src/ceasiompy/Range/func/Crew/crewmembers.py similarity index 100% rename from ceasiompy/Range/func/Crew/crewmembers.py rename to src/ceasiompy/Range/func/Crew/crewmembers.py diff --git a/ceasiompy/Range/func/__init__.py b/src/ceasiompy/Range/func/Fuel/__init__.py similarity index 100% rename from ceasiompy/Range/func/__init__.py rename to src/ceasiompy/Range/func/Fuel/__init__.py diff --git a/ceasiompy/Range/func/Fuel/fuelconsumption.py b/src/ceasiompy/Range/func/Fuel/fuelconsumption.py similarity index 100% rename from ceasiompy/Range/func/Fuel/fuelconsumption.py rename to src/ceasiompy/Range/func/Fuel/fuelconsumption.py diff --git a/ceasiompy/SU2MeshDef/func/__init__.py b/src/ceasiompy/Range/func/RangeEstimation/__init__.py similarity index 100% rename from ceasiompy/SU2MeshDef/func/__init__.py rename to src/ceasiompy/Range/func/RangeEstimation/__init__.py diff --git a/ceasiompy/Range/func/RangeEstimation/breguetrange.py b/src/ceasiompy/Range/func/RangeEstimation/breguetrange.py similarity index 100% rename from ceasiompy/Range/func/RangeEstimation/breguetrange.py rename to src/ceasiompy/Range/func/RangeEstimation/breguetrange.py diff --git a/ceasiompy/WeightConventional/func/__init__.py b/src/ceasiompy/Range/func/__init__.py similarity index 100% rename from ceasiompy/WeightConventional/func/__init__.py rename to src/ceasiompy/Range/func/__init__.py diff --git a/ceasiompy/Range/func/rangeclass.py b/src/ceasiompy/Range/func/rangeclass.py similarity index 100% rename from ceasiompy/Range/func/rangeclass.py rename to src/ceasiompy/Range/func/rangeclass.py diff --git a/ceasiompy/Range/range.py b/src/ceasiompy/Range/range.py similarity index 100% rename from ceasiompy/Range/range.py rename to src/ceasiompy/Range/range.py diff --git a/ceasiompy/SMTrain/README.md b/src/ceasiompy/SMTrain/README.md similarity index 100% rename from ceasiompy/SMTrain/README.md rename to src/ceasiompy/SMTrain/README.md diff --git a/ceasiompy/SMTrain/__init__.py b/src/ceasiompy/SMTrain/__init__.py similarity index 100% rename from ceasiompy/SMTrain/__init__.py rename to src/ceasiompy/SMTrain/__init__.py diff --git a/ceasiompy/SMTrain/__specs__.py b/src/ceasiompy/SMTrain/__specs__.py similarity index 99% rename from ceasiompy/SMTrain/__specs__.py rename to src/ceasiompy/SMTrain/__specs__.py index 3ef93976e..b6b88fac9 100755 --- a/ceasiompy/SMTrain/__specs__.py +++ b/src/ceasiompy/SMTrain/__specs__.py @@ -54,6 +54,7 @@ gui=INCLUDE_GUI, gui_name="Choice of fidelity level", gui_group="Training Surrogate Settings", + test_value=[LEVEL_ONE], ) cpacs_inout.add_input( diff --git a/ceasiompy/SMTrain/func/__init__.py b/src/ceasiompy/SMTrain/func/__init__.py similarity index 100% rename from ceasiompy/SMTrain/func/__init__.py rename to src/ceasiompy/SMTrain/func/__init__.py diff --git a/ceasiompy/SMTrain/func/config.py b/src/ceasiompy/SMTrain/func/config.py similarity index 100% rename from ceasiompy/SMTrain/func/config.py rename to src/ceasiompy/SMTrain/func/config.py diff --git a/ceasiompy/SMTrain/func/createdata.py b/src/ceasiompy/SMTrain/func/createdata.py similarity index 100% rename from ceasiompy/SMTrain/func/createdata.py rename to src/ceasiompy/SMTrain/func/createdata.py diff --git a/ceasiompy/SMTrain/func/loss.py b/src/ceasiompy/SMTrain/func/loss.py similarity index 100% rename from ceasiompy/SMTrain/func/loss.py rename to src/ceasiompy/SMTrain/func/loss.py diff --git a/ceasiompy/SMTrain/func/plot.py b/src/ceasiompy/SMTrain/func/plot.py similarity index 100% rename from ceasiompy/SMTrain/func/plot.py rename to src/ceasiompy/SMTrain/func/plot.py diff --git a/ceasiompy/SMTrain/func/sampling.py b/src/ceasiompy/SMTrain/func/sampling.py similarity index 100% rename from ceasiompy/SMTrain/func/sampling.py rename to src/ceasiompy/SMTrain/func/sampling.py diff --git a/ceasiompy/SMTrain/func/trainsurrogate.py b/src/ceasiompy/SMTrain/func/trainsurrogate.py similarity index 100% rename from ceasiompy/SMTrain/func/trainsurrogate.py rename to src/ceasiompy/SMTrain/func/trainsurrogate.py diff --git a/ceasiompy/SMTrain/func/utils.py b/src/ceasiompy/SMTrain/func/utils.py similarity index 100% rename from ceasiompy/SMTrain/func/utils.py rename to src/ceasiompy/SMTrain/func/utils.py diff --git a/ceasiompy/SMTrain/sm_train.py b/src/ceasiompy/SMTrain/sm_train.py similarity index 100% rename from ceasiompy/SMTrain/sm_train.py rename to src/ceasiompy/SMTrain/sm_train.py diff --git a/ceasiompy/SMTrain/tests/test_smtrain_config.py b/src/ceasiompy/SMTrain/tests/test_smtrain_config.py similarity index 100% rename from ceasiompy/SMTrain/tests/test_smtrain_config.py rename to src/ceasiompy/SMTrain/tests/test_smtrain_config.py diff --git a/ceasiompy/SMTrain/tests/test_smtrain_sampling.py b/src/ceasiompy/SMTrain/tests/test_smtrain_sampling.py similarity index 100% rename from ceasiompy/SMTrain/tests/test_smtrain_sampling.py rename to src/ceasiompy/SMTrain/tests/test_smtrain_sampling.py diff --git a/ceasiompy/SMUse/README.md b/src/ceasiompy/SMUse/README.md similarity index 100% rename from ceasiompy/SMUse/README.md rename to src/ceasiompy/SMUse/README.md diff --git a/ceasiompy/SMUse/__init__.py b/src/ceasiompy/SMUse/__init__.py similarity index 100% rename from ceasiompy/SMUse/__init__.py rename to src/ceasiompy/SMUse/__init__.py diff --git a/ceasiompy/SMUse/__specs__.py b/src/ceasiompy/SMUse/__specs__.py similarity index 100% rename from ceasiompy/SMUse/__specs__.py rename to src/ceasiompy/SMUse/__specs__.py diff --git a/ceasiompy/SMUse/func/config.py b/src/ceasiompy/SMUse/func/config.py similarity index 100% rename from ceasiompy/SMUse/func/config.py rename to src/ceasiompy/SMUse/func/config.py diff --git a/ceasiompy/SMUse/func/predictions.py b/src/ceasiompy/SMUse/func/predictions.py similarity index 100% rename from ceasiompy/SMUse/func/predictions.py rename to src/ceasiompy/SMUse/func/predictions.py diff --git a/ceasiompy/SMUse/func/results.py b/src/ceasiompy/SMUse/func/results.py similarity index 100% rename from ceasiompy/SMUse/func/results.py rename to src/ceasiompy/SMUse/func/results.py diff --git a/ceasiompy/SMUse/sm_use.py b/src/ceasiompy/SMUse/sm_use.py similarity index 100% rename from ceasiompy/SMUse/sm_use.py rename to src/ceasiompy/SMUse/sm_use.py diff --git a/ceasiompy/CPACS2SUMO/ToolInput/.keep b/src/ceasiompy/SU2MeshDef/ToolInput/.keep similarity index 100% rename from ceasiompy/CPACS2SUMO/ToolInput/.keep rename to src/ceasiompy/SU2MeshDef/ToolInput/.keep diff --git a/ceasiompy/CPACS2SUMO/ToolOutput/.keep b/src/ceasiompy/SU2MeshDef/ToolOutput/.keep similarity index 100% rename from ceasiompy/CPACS2SUMO/ToolOutput/.keep rename to src/ceasiompy/SU2MeshDef/ToolOutput/.keep diff --git a/ceasiompy/SU2MeshDef/__init__.py b/src/ceasiompy/SU2MeshDef/__init__.py similarity index 100% rename from ceasiompy/SU2MeshDef/__init__.py rename to src/ceasiompy/SU2MeshDef/__init__.py diff --git a/ceasiompy/SU2MeshDef/__specs__.py b/src/ceasiompy/SU2MeshDef/__specs__.py similarity index 100% rename from ceasiompy/SU2MeshDef/__specs__.py rename to src/ceasiompy/SU2MeshDef/__specs__.py diff --git a/ceasiompy/SU2MeshDef/files/DefaultConfig_v6.cfg b/src/ceasiompy/SU2MeshDef/files/DefaultConfig_v6.cfg similarity index 100% rename from ceasiompy/SU2MeshDef/files/DefaultConfig_v6.cfg rename to src/ceasiompy/SU2MeshDef/files/DefaultConfig_v6.cfg diff --git a/ceasiompy/SU2MeshDef/files/DefaultConfig_v7.cfg b/src/ceasiompy/SU2MeshDef/files/DefaultConfig_v7.cfg similarity index 100% rename from ceasiompy/SU2MeshDef/files/DefaultConfig_v7.cfg rename to src/ceasiompy/SU2MeshDef/files/DefaultConfig_v7.cfg diff --git a/ceasiompy/WeightUnconventional/func/AinFunc/__init__.py b/src/ceasiompy/SU2MeshDef/func/__init__.py similarity index 100% rename from ceasiompy/WeightUnconventional/func/AinFunc/__init__.py rename to src/ceasiompy/SU2MeshDef/func/__init__.py diff --git a/ceasiompy/SU2MeshDef/su2meshdef.py b/src/ceasiompy/SU2MeshDef/su2meshdef.py similarity index 100% rename from ceasiompy/SU2MeshDef/su2meshdef.py rename to src/ceasiompy/SU2MeshDef/su2meshdef.py diff --git a/ceasiompy/SU2Run/README.md b/src/ceasiompy/SU2Run/README.md similarity index 100% rename from ceasiompy/SU2Run/README.md rename to src/ceasiompy/SU2Run/README.md diff --git a/ceasiompy/SU2Run/__init__.py b/src/ceasiompy/SU2Run/__init__.py similarity index 92% rename from ceasiompy/SU2Run/__init__.py rename to src/ceasiompy/SU2Run/__init__.py index e34821016..a59d1bfad 100755 --- a/ceasiompy/SU2Run/__init__.py +++ b/src/ceasiompy/SU2Run/__init__.py @@ -89,11 +89,3 @@ SU2_DYNAMICDERIVATIVES_INNERITER_XPATH = SU2_DYNAMICDERIVATIVES_XPATH + "/InnerIter" SU2_DYNAMICDERIVATIVES_DATA_XPATH = SU2_DYNAMICDERIVATIVES_XPATH + "/Data" SU2_CEASIOMPYDATA_XPATH = SU2_XPATH + "/CeasiompyData" - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/SU2Run/__specs__.py b/src/ceasiompy/SU2Run/__specs__.py similarity index 97% rename from ceasiompy/SU2Run/__specs__.py rename to src/ceasiompy/SU2Run/__specs__.py index 2c9425e71..d74328fe2 100755 --- a/ceasiompy/SU2Run/__specs__.py +++ b/src/ceasiompy/SU2Run/__specs__.py @@ -498,11 +498,3 @@ descr="aeroMap with aero coefficients calculated by SU2", xpath=AEROPERFORMANCE_XPATH + "/aeroMap/aeroPerformanceMap", ) - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/SU2Run/files/.gitignore b/src/ceasiompy/SU2Run/files/.gitignore similarity index 100% rename from ceasiompy/SU2Run/files/.gitignore rename to src/ceasiompy/SU2Run/files/.gitignore diff --git a/ceasiompy/SU2Run/files/cfg_tpl_euler.cfg b/src/ceasiompy/SU2Run/files/cfg_tpl_euler.cfg similarity index 100% rename from ceasiompy/SU2Run/files/cfg_tpl_euler.cfg rename to src/ceasiompy/SU2Run/files/cfg_tpl_euler.cfg diff --git a/ceasiompy/SU2Run/files/cfg_tpl_rans.cfg b/src/ceasiompy/SU2Run/files/cfg_tpl_rans.cfg similarity index 100% rename from ceasiompy/SU2Run/files/cfg_tpl_rans.cfg rename to src/ceasiompy/SU2Run/files/cfg_tpl_rans.cfg diff --git a/ceasiompy/SU2Run/files/default_paraview_state.pvsm b/src/ceasiompy/SU2Run/files/default_paraview_state.pvsm similarity index 100% rename from ceasiompy/SU2Run/files/default_paraview_state.pvsm rename to src/ceasiompy/SU2Run/files/default_paraview_state.pvsm diff --git a/ceasiompy/SU2Run/func/__init__.py b/src/ceasiompy/SU2Run/func/__init__.py similarity index 100% rename from ceasiompy/SU2Run/func/__init__.py rename to src/ceasiompy/SU2Run/func/__init__.py diff --git a/ceasiompy/SU2Run/func/actuatordiskfile.py b/src/ceasiompy/SU2Run/func/actuatordiskfile.py similarity index 100% rename from ceasiompy/SU2Run/func/actuatordiskfile.py rename to src/ceasiompy/SU2Run/func/actuatordiskfile.py diff --git a/ceasiompy/SU2Run/func/config.py b/src/ceasiompy/SU2Run/func/config.py similarity index 100% rename from ceasiompy/SU2Run/func/config.py rename to src/ceasiompy/SU2Run/func/config.py diff --git a/ceasiompy/SU2Run/func/dotderivatives.py b/src/ceasiompy/SU2Run/func/dotderivatives.py similarity index 100% rename from ceasiompy/SU2Run/func/dotderivatives.py rename to src/ceasiompy/SU2Run/func/dotderivatives.py diff --git a/ceasiompy/SU2Run/func/extractloads.py b/src/ceasiompy/SU2Run/func/extractloads.py similarity index 100% rename from ceasiompy/SU2Run/func/extractloads.py rename to src/ceasiompy/SU2Run/func/extractloads.py diff --git a/ceasiompy/SU2Run/func/plot.py b/src/ceasiompy/SU2Run/func/plot.py similarity index 100% rename from ceasiompy/SU2Run/func/plot.py rename to src/ceasiompy/SU2Run/func/plot.py diff --git a/ceasiompy/SU2Run/func/results.py b/src/ceasiompy/SU2Run/func/results.py similarity index 100% rename from ceasiompy/SU2Run/func/results.py rename to src/ceasiompy/SU2Run/func/results.py diff --git a/ceasiompy/SU2Run/func/runconfigfiles.py b/src/ceasiompy/SU2Run/func/runconfigfiles.py similarity index 100% rename from ceasiompy/SU2Run/func/runconfigfiles.py rename to src/ceasiompy/SU2Run/func/runconfigfiles.py diff --git a/ceasiompy/SU2Run/func/utils.py b/src/ceasiompy/SU2Run/func/utils.py similarity index 100% rename from ceasiompy/SU2Run/func/utils.py rename to src/ceasiompy/SU2Run/func/utils.py diff --git a/ceasiompy/SU2Run/su2run.py b/src/ceasiompy/SU2Run/su2run.py similarity index 100% rename from ceasiompy/SU2Run/su2run.py rename to src/ceasiompy/SU2Run/su2run.py diff --git a/ceasiompy/SU2Run/tests/tests_su2_results/test_su2results.py b/src/ceasiompy/SU2Run/tests/tests_su2_results/test_su2results.py similarity index 100% rename from ceasiompy/SU2Run/tests/tests_su2_results/test_su2results.py rename to src/ceasiompy/SU2Run/tests/tests_su2_results/test_su2results.py diff --git a/ceasiompy/SU2Run/tests/tests_su2actuatordisk/test_su2actuatordisk.py b/src/ceasiompy/SU2Run/tests/tests_su2actuatordisk/test_su2actuatordisk.py similarity index 100% rename from ceasiompy/SU2Run/tests/tests_su2actuatordisk/test_su2actuatordisk.py rename to src/ceasiompy/SU2Run/tests/tests_su2actuatordisk/test_su2actuatordisk.py diff --git a/ceasiompy/SU2Run/tests/tests_su2config/test_su2config.py b/src/ceasiompy/SU2Run/tests/tests_su2config/test_su2config.py similarity index 82% rename from ceasiompy/SU2Run/tests/tests_su2config/test_su2config.py rename to src/ceasiompy/SU2Run/tests/tests_su2config/test_su2config.py index f36384b1b..a5592b241 100755 --- a/ceasiompy/SU2Run/tests/tests_su2config/test_su2config.py +++ b/src/ceasiompy/SU2Run/tests/tests_su2config/test_su2config.py @@ -53,13 +53,3 @@ def test_add_damping_derivatives(tmp_path): def test_add_actuator_disk(): """Test function 'add_actuator_disk'""" ... - -# ================================================================================================= -# MAIN -# ================================================================================================= - - -if __name__ == "__main__": - print("Test test_su2configfile.py") - print("To run test use the following command:") - print(">> pytest -v") diff --git a/ceasiompy/SU2Run/tests/tests_su2utils/.gitignore b/src/ceasiompy/SU2Run/tests/tests_su2utils/.gitignore similarity index 100% rename from ceasiompy/SU2Run/tests/tests_su2utils/.gitignore rename to src/ceasiompy/SU2Run/tests/tests_su2utils/.gitignore diff --git a/ceasiompy/SU2Run/tests/tests_su2utils/forces_breakdown.dat b/src/ceasiompy/SU2Run/tests/tests_su2utils/forces_breakdown.dat similarity index 100% rename from ceasiompy/SU2Run/tests/tests_su2utils/forces_breakdown.dat rename to src/ceasiompy/SU2Run/tests/tests_su2utils/forces_breakdown.dat diff --git a/ceasiompy/SU2Run/tests/tests_su2utils/forces_breakdown_no_value.dat b/src/ceasiompy/SU2Run/tests/tests_su2utils/forces_breakdown_no_value.dat similarity index 100% rename from ceasiompy/SU2Run/tests/tests_su2utils/forces_breakdown_no_value.dat rename to src/ceasiompy/SU2Run/tests/tests_su2utils/forces_breakdown_no_value.dat diff --git a/ceasiompy/SU2Run/tests/tests_su2utils/logfile_SU2_CFD.log b/src/ceasiompy/SU2Run/tests/tests_su2utils/logfile_SU2_CFD.log similarity index 100% rename from ceasiompy/SU2Run/tests/tests_su2utils/logfile_SU2_CFD.log rename to src/ceasiompy/SU2Run/tests/tests_su2utils/logfile_SU2_CFD.log diff --git a/ceasiompy/SU2Run/tests/tests_su2utils/logfile_SU2_CFD_no_wetted_area.log b/src/ceasiompy/SU2Run/tests/tests_su2utils/logfile_SU2_CFD_no_wetted_area.log similarity index 100% rename from ceasiompy/SU2Run/tests/tests_su2utils/logfile_SU2_CFD_no_wetted_area.log rename to src/ceasiompy/SU2Run/tests/tests_su2utils/logfile_SU2_CFD_no_wetted_area.log diff --git a/ceasiompy/SU2Run/tests/tests_su2utils/not_su2_mesh.txt b/src/ceasiompy/SU2Run/tests/tests_su2utils/not_su2_mesh.txt similarity index 100% rename from ceasiompy/SU2Run/tests/tests_su2utils/not_su2_mesh.txt rename to src/ceasiompy/SU2Run/tests/tests_su2utils/not_su2_mesh.txt diff --git a/ceasiompy/SU2Run/tests/tests_su2utils/test_mesh0.su2 b/src/ceasiompy/SU2Run/tests/tests_su2utils/test_mesh0.su2 similarity index 100% rename from ceasiompy/SU2Run/tests/tests_su2utils/test_mesh0.su2 rename to src/ceasiompy/SU2Run/tests/tests_su2utils/test_mesh0.su2 diff --git a/ceasiompy/SU2Run/tests/tests_su2utils/test_mesh1.su2 b/src/ceasiompy/SU2Run/tests/tests_su2utils/test_mesh1.su2 similarity index 100% rename from ceasiompy/SU2Run/tests/tests_su2utils/test_mesh1.su2 rename to src/ceasiompy/SU2Run/tests/tests_su2utils/test_mesh1.su2 diff --git a/ceasiompy/SU2Run/tests/tests_su2utils/test_su2utils.py b/src/ceasiompy/SU2Run/tests/tests_su2utils/test_su2utils.py similarity index 100% rename from ceasiompy/SU2Run/tests/tests_su2utils/test_su2utils.py rename to src/ceasiompy/SU2Run/tests/tests_su2utils/test_su2utils.py diff --git a/ceasiompy/SUMOAutoMesh/README.md b/src/ceasiompy/SUMOAutoMesh/README.md similarity index 100% rename from ceasiompy/SUMOAutoMesh/README.md rename to src/ceasiompy/SUMOAutoMesh/README.md diff --git a/ceasiompy/SUMOAutoMesh/__init__.py b/src/ceasiompy/SUMOAutoMesh/__init__.py similarity index 100% rename from ceasiompy/SUMOAutoMesh/__init__.py rename to src/ceasiompy/SUMOAutoMesh/__init__.py diff --git a/ceasiompy/SUMOAutoMesh/__specs__.py b/src/ceasiompy/SUMOAutoMesh/__specs__.py similarity index 100% rename from ceasiompy/SUMOAutoMesh/__specs__.py rename to src/ceasiompy/SUMOAutoMesh/__specs__.py diff --git a/ceasiompy/SUMOAutoMesh/doc/sumo_help b/src/ceasiompy/SUMOAutoMesh/doc/sumo_help similarity index 100% rename from ceasiompy/SUMOAutoMesh/doc/sumo_help rename to src/ceasiompy/SUMOAutoMesh/doc/sumo_help diff --git a/ceasiompy/SUMOAutoMesh/doc/tetgen_help b/src/ceasiompy/SUMOAutoMesh/doc/tetgen_help similarity index 100% rename from ceasiompy/SUMOAutoMesh/doc/tetgen_help rename to src/ceasiompy/SUMOAutoMesh/doc/tetgen_help diff --git a/ceasiompy/SUMOAutoMesh/sumoautomesh.py b/src/ceasiompy/SUMOAutoMesh/sumoautomesh.py similarity index 100% rename from ceasiompy/SUMOAutoMesh/sumoautomesh.py rename to src/ceasiompy/SUMOAutoMesh/sumoautomesh.py diff --git a/ceasiompy/SaveAeroCoefficients/README.md b/src/ceasiompy/SaveAeroCoefficients/README.md similarity index 100% rename from ceasiompy/SaveAeroCoefficients/README.md rename to src/ceasiompy/SaveAeroCoefficients/README.md diff --git a/ceasiompy/SaveAeroCoefficients/Results/SaveAeroCoefficients/D150.png b/src/ceasiompy/SaveAeroCoefficients/Results/SaveAeroCoefficients/D150.png similarity index 100% rename from ceasiompy/SaveAeroCoefficients/Results/SaveAeroCoefficients/D150.png rename to src/ceasiompy/SaveAeroCoefficients/Results/SaveAeroCoefficients/D150.png diff --git a/ceasiompy/SaveAeroCoefficients/__init__.py b/src/ceasiompy/SaveAeroCoefficients/__init__.py similarity index 100% rename from ceasiompy/SaveAeroCoefficients/__init__.py rename to src/ceasiompy/SaveAeroCoefficients/__init__.py diff --git a/ceasiompy/SaveAeroCoefficients/__specs__.py b/src/ceasiompy/SaveAeroCoefficients/__specs__.py similarity index 95% rename from ceasiompy/SaveAeroCoefficients/__specs__.py rename to src/ceasiompy/SaveAeroCoefficients/__specs__.py index decd7579d..6ce1c808d 100755 --- a/ceasiompy/SaveAeroCoefficients/__specs__.py +++ b/src/ceasiompy/SaveAeroCoefficients/__specs__.py @@ -216,11 +216,3 @@ gui_name="__AEROMAP_CHECKBOX", gui_group="Aeromap list for scatter points", ) - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/SaveAeroCoefficients/func/plot.py b/src/ceasiompy/SaveAeroCoefficients/func/plot.py similarity index 100% rename from ceasiompy/SaveAeroCoefficients/func/plot.py rename to src/ceasiompy/SaveAeroCoefficients/func/plot.py diff --git a/ceasiompy/SaveAeroCoefficients/func/responsesurface.py b/src/ceasiompy/SaveAeroCoefficients/func/responsesurface.py similarity index 100% rename from ceasiompy/SaveAeroCoefficients/func/responsesurface.py rename to src/ceasiompy/SaveAeroCoefficients/func/responsesurface.py diff --git a/ceasiompy/SaveAeroCoefficients/func/utils.py b/src/ceasiompy/SaveAeroCoefficients/func/utils.py similarity index 100% rename from ceasiompy/SaveAeroCoefficients/func/utils.py rename to src/ceasiompy/SaveAeroCoefficients/func/utils.py diff --git a/ceasiompy/SaveAeroCoefficients/saveaerocoef.py b/src/ceasiompy/SaveAeroCoefficients/saveaerocoef.py similarity index 100% rename from ceasiompy/SaveAeroCoefficients/saveaerocoef.py rename to src/ceasiompy/SaveAeroCoefficients/saveaerocoef.py diff --git a/ceasiompy/SaveAeroCoefficients/tests/test_saveaerocoef.py b/src/ceasiompy/SaveAeroCoefficients/tests/test_saveaerocoef.py similarity index 81% rename from ceasiompy/SaveAeroCoefficients/tests/test_saveaerocoef.py rename to src/ceasiompy/SaveAeroCoefficients/tests/test_saveaerocoef.py index 74e25d019..df6e3e457 100755 --- a/ceasiompy/SaveAeroCoefficients/tests/test_saveaerocoef.py +++ b/src/ceasiompy/SaveAeroCoefficients/tests/test_saveaerocoef.py @@ -44,13 +44,3 @@ def test_save_aero_coef(): # Assert a .png file exists in the directory png_files = list(results_dir.glob("*.png")) assert png_files, f"No .png file found in {results_dir}" - -# ================================================================================================= -# MAIN -# ================================================================================================= - - -if __name__ == "__main__": - print("Test SaveAeroCoefficients") - print("To run test use the following command:") - print(">> pytest -v") diff --git a/ceasiompy/SkinFriction/README.md b/src/ceasiompy/SkinFriction/README.md similarity index 100% rename from ceasiompy/SkinFriction/README.md rename to src/ceasiompy/SkinFriction/README.md diff --git a/ceasiompy/ModuleTemplate/tests/ToolOutput/.keep b/src/ceasiompy/SkinFriction/ToolOutput/.keep similarity index 100% rename from ceasiompy/ModuleTemplate/tests/ToolOutput/.keep rename to src/ceasiompy/SkinFriction/ToolOutput/.keep diff --git a/ceasiompy/SkinFriction/__init__.py b/src/ceasiompy/SkinFriction/__init__.py similarity index 100% rename from ceasiompy/SkinFriction/__init__.py rename to src/ceasiompy/SkinFriction/__init__.py diff --git a/ceasiompy/SkinFriction/__specs__.py b/src/ceasiompy/SkinFriction/__specs__.py similarity index 92% rename from ceasiompy/SkinFriction/__specs__.py rename to src/ceasiompy/SkinFriction/__specs__.py index f462ac28f..d05dea174 100755 --- a/ceasiompy/SkinFriction/__specs__.py +++ b/src/ceasiompy/SkinFriction/__specs__.py @@ -129,10 +129,3 @@ descr="List of aeroMap to plot", xpath=PLOT_XPATH + "/aeroMapToPlot", ) - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/SkinFriction/skinfriction.py b/src/ceasiompy/SkinFriction/skinfriction.py similarity index 100% rename from ceasiompy/SkinFriction/skinfriction.py rename to src/ceasiompy/SkinFriction/skinfriction.py diff --git a/ceasiompy/SkinFriction/tests/D150_simple_SkinFriction_test.xml b/src/ceasiompy/SkinFriction/tests/D150_simple_SkinFriction_test.xml similarity index 100% rename from ceasiompy/SkinFriction/tests/D150_simple_SkinFriction_test.xml rename to src/ceasiompy/SkinFriction/tests/D150_simple_SkinFriction_test.xml diff --git a/ceasiompy/SkinFriction/tests/test_skinfriction.py b/src/ceasiompy/SkinFriction/tests/test_skinfriction.py similarity index 90% rename from ceasiompy/SkinFriction/tests/test_skinfriction.py rename to src/ceasiompy/SkinFriction/tests/test_skinfriction.py index b0a2c1858..b7e8ec5f6 100755 --- a/ceasiompy/SkinFriction/tests/test_skinfriction.py +++ b/src/ceasiompy/SkinFriction/tests/test_skinfriction.py @@ -92,13 +92,3 @@ def test_add_skin_friction(): # Remove the output cpacs file if exist if CPACS_OUT_PATH.exists(): CPACS_OUT_PATH.unlink() - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - print("Test SkinFriction") - print("To run test use the following command:") - print(">> pytest -v") diff --git a/ceasiompy/StaticStability/README.md b/src/ceasiompy/StaticStability/README.md similarity index 100% rename from ceasiompy/StaticStability/README.md rename to src/ceasiompy/StaticStability/README.md diff --git a/ceasiompy/StaticStability/__init__.py b/src/ceasiompy/StaticStability/__init__.py similarity index 77% rename from ceasiompy/StaticStability/__init__.py rename to src/ceasiompy/StaticStability/__init__.py index 671a827b1..b16182404 100755 --- a/ceasiompy/StaticStability/__init__.py +++ b/src/ceasiompy/StaticStability/__init__.py @@ -37,11 +37,3 @@ # Specific to StaticStability module STABILITY_DICT = {True: "Stable", False: "Unstable"} - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/StaticStability/__specs__.py b/src/ceasiompy/StaticStability/__specs__.py similarity index 80% rename from ceasiompy/StaticStability/__specs__.py rename to src/ceasiompy/StaticStability/__specs__.py index fbc6914cc..32a825203 100755 --- a/ceasiompy/StaticStability/__specs__.py +++ b/src/ceasiompy/StaticStability/__specs__.py @@ -37,10 +37,3 @@ gui_name="Linear Regression", gui_group="Static Stability Settings", ) - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/StaticStability/func/extractdata.py b/src/ceasiompy/StaticStability/func/extractdata.py similarity index 100% rename from ceasiompy/StaticStability/func/extractdata.py rename to src/ceasiompy/StaticStability/func/extractdata.py diff --git a/ceasiompy/StaticStability/func/plot.py b/src/ceasiompy/StaticStability/func/plot.py similarity index 100% rename from ceasiompy/StaticStability/func/plot.py rename to src/ceasiompy/StaticStability/func/plot.py diff --git a/ceasiompy/StaticStability/func/stabilitystatus.py b/src/ceasiompy/StaticStability/func/stabilitystatus.py similarity index 100% rename from ceasiompy/StaticStability/func/stabilitystatus.py rename to src/ceasiompy/StaticStability/func/stabilitystatus.py diff --git a/ceasiompy/StaticStability/func/utils.py b/src/ceasiompy/StaticStability/func/utils.py similarity index 100% rename from ceasiompy/StaticStability/func/utils.py rename to src/ceasiompy/StaticStability/func/utils.py diff --git a/ceasiompy/StaticStability/staticstability.py b/src/ceasiompy/StaticStability/staticstability.py similarity index 100% rename from ceasiompy/StaticStability/staticstability.py rename to src/ceasiompy/StaticStability/staticstability.py diff --git a/ceasiompy/StaticStability/tests/test_staticstability.py b/src/ceasiompy/StaticStability/tests/test_staticstability.py similarity index 100% rename from ceasiompy/StaticStability/tests/test_staticstability.py rename to src/ceasiompy/StaticStability/tests/test_staticstability.py diff --git a/ceasiompy/ThermoData/README.md b/src/ceasiompy/ThermoData/README.md similarity index 100% rename from ceasiompy/ThermoData/README.md rename to src/ceasiompy/ThermoData/README.md diff --git a/ceasiompy/ThermoData/__init__.py b/src/ceasiompy/ThermoData/__init__.py similarity index 74% rename from ceasiompy/ThermoData/__init__.py rename to src/ceasiompy/ThermoData/__init__.py index a20a168ba..9bdae0739 100755 --- a/ceasiompy/ThermoData/__init__.py +++ b/src/ceasiompy/ThermoData/__init__.py @@ -31,11 +31,3 @@ # ===== Include Module's name ===== MODULE_DIR = Path(__file__).parent MODULE_NAME = MODULE_DIR.name - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/ThermoData/__specs__.py b/src/ceasiompy/ThermoData/__specs__.py similarity index 88% rename from ceasiompy/ThermoData/__specs__.py rename to src/ceasiompy/ThermoData/__specs__.py index 71fc6d7b8..4b0de186e 100755 --- a/ceasiompy/ThermoData/__specs__.py +++ b/src/ceasiompy/ThermoData/__specs__.py @@ -81,10 +81,3 @@ descr="FIXED_CL_MODE parameter for SU2", xpath=SU2_FIXED_CL_XPATH, ) - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/ThermoData/func/turbofan.py b/src/ceasiompy/ThermoData/func/turbofan.py similarity index 100% rename from ceasiompy/ThermoData/func/turbofan.py rename to src/ceasiompy/ThermoData/func/turbofan.py diff --git a/ceasiompy/ThermoData/func/turbojet.py b/src/ceasiompy/ThermoData/func/turbojet.py similarity index 100% rename from ceasiompy/ThermoData/func/turbojet.py rename to src/ceasiompy/ThermoData/func/turbojet.py diff --git a/ceasiompy/ThermoData/tests/test_thermodata.py b/src/ceasiompy/ThermoData/tests/test_thermodata.py similarity index 83% rename from ceasiompy/ThermoData/tests/test_thermodata.py rename to src/ceasiompy/ThermoData/tests/test_thermodata.py index 3485285f3..18369be63 100755 --- a/ceasiompy/ThermoData/tests/test_thermodata.py +++ b/src/ceasiompy/ThermoData/tests/test_thermodata.py @@ -96,22 +96,20 @@ def test_turbofan_func(): Fn = 2000 new_sol_tuple = turbofan_analysis(alt, MN, Fn) new_sol = np.concatenate(new_sol_tuple) - correct_sol = np.array( - [ - 65.04136793, - 323.23292298, - 0.95295201, - 161198.12289882, - 1.78761453, - 13.08931717, - 1270.61685498, - 724.51083329, - 1.0, - 964349.32127573, - 1.42155524, - 1139.22870449, - ] - ) + correct_sol = np.array([ + 65.04136793, + 323.23292298, + 0.95295201, + 161198.12289882, + 1.78761453, + 13.08931717, + 1270.61685498, + 724.51083329, + 1.0, + 964349.32127573, + 1.42155524, + 1139.22870449, + ]) np.testing.assert_almost_equal(new_sol, correct_sol, 3) @@ -154,13 +152,3 @@ def test_write_hbtf_file(tmp_path): content.append("") assert test_thermodata_path.read_text().split("\n") == content - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - print("Test ThermoData") - print("To run test use the following command:") - print(">> pytest -v") diff --git a/ceasiompy/ThermoData/thermodata.py b/src/ceasiompy/ThermoData/thermodata.py similarity index 100% rename from ceasiompy/ThermoData/thermodata.py rename to src/ceasiompy/ThermoData/thermodata.py diff --git a/ceasiompy/WeightConventional/README.md b/src/ceasiompy/WeightConventional/README.md similarity index 100% rename from ceasiompy/WeightConventional/README.md rename to src/ceasiompy/WeightConventional/README.md diff --git a/ceasiompy/Range/ToolInput/.keep b/src/ceasiompy/WeightConventional/ToolInput/.keep similarity index 100% rename from ceasiompy/Range/ToolInput/.keep rename to src/ceasiompy/WeightConventional/ToolInput/.keep diff --git a/ceasiompy/SU2MeshDef/ToolInput/.keep b/src/ceasiompy/WeightConventional/ToolOutput/.keep similarity index 100% rename from ceasiompy/SU2MeshDef/ToolInput/.keep rename to src/ceasiompy/WeightConventional/ToolOutput/.keep diff --git a/ceasiompy/WeightConventional/__init__.py b/src/ceasiompy/WeightConventional/__init__.py similarity index 75% rename from ceasiompy/WeightConventional/__init__.py rename to src/ceasiompy/WeightConventional/__init__.py index 7a3b88cdb..c35ee0e33 100755 --- a/ceasiompy/WeightConventional/__init__.py +++ b/src/ceasiompy/WeightConventional/__init__.py @@ -34,11 +34,3 @@ # ===== Include Module's name ===== MODULE_DIR = Path(__file__).parent MODULE_NAME = MODULE_DIR.name - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/WeightConventional/__specs__.py b/src/ceasiompy/WeightConventional/__specs__.py similarity index 96% rename from ceasiompy/WeightConventional/__specs__.py rename to src/ceasiompy/WeightConventional/__specs__.py index 1a6f9a8d3..01e1a7edd 100755 --- a/ceasiompy/WeightConventional/__specs__.py +++ b/src/ceasiompy/WeightConventional/__specs__.py @@ -364,10 +364,3 @@ descr="Number of toilets", xpath=WB_TOILET_NB_XPATH, ) - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/WeightConventional/files/AircraftData2018_v1_ste.csv b/src/ceasiompy/WeightConventional/files/AircraftData2018_v1_ste.csv similarity index 100% rename from ceasiompy/WeightConventional/files/AircraftData2018_v1_ste.csv rename to src/ceasiompy/WeightConventional/files/AircraftData2018_v1_ste.csv diff --git a/ceasiompy/WeightConventional/files/AircraftData2018_v3_ste.csv b/src/ceasiompy/WeightConventional/files/AircraftData2018_v3_ste.csv similarity index 100% rename from ceasiompy/WeightConventional/files/AircraftData2018_v3_ste.csv rename to src/ceasiompy/WeightConventional/files/AircraftData2018_v3_ste.csv diff --git a/ceasiompy/WeightConventional/files/Master_Thesis_report_Stefano_Piccini.pdf b/src/ceasiompy/WeightConventional/files/Master_Thesis_report_Stefano_Piccini.pdf similarity index 100% rename from ceasiompy/WeightConventional/files/Master_Thesis_report_Stefano_Piccini.pdf rename to src/ceasiompy/WeightConventional/files/Master_Thesis_report_Stefano_Piccini.pdf diff --git a/ceasiompy/WeightUnconventional/func/AoutFunc/__init__.py b/src/ceasiompy/WeightConventional/func/__init__.py similarity index 100% rename from ceasiompy/WeightUnconventional/func/AoutFunc/__init__.py rename to src/ceasiompy/WeightConventional/func/__init__.py diff --git a/ceasiompy/WeightConventional/func/cabin.py b/src/ceasiompy/WeightConventional/func/cabin.py similarity index 100% rename from ceasiompy/WeightConventional/func/cabin.py rename to src/ceasiompy/WeightConventional/func/cabin.py diff --git a/ceasiompy/WeightConventional/func/masses.py b/src/ceasiompy/WeightConventional/func/masses.py similarity index 100% rename from ceasiompy/WeightConventional/func/masses.py rename to src/ceasiompy/WeightConventional/func/masses.py diff --git a/ceasiompy/WeightConventional/func/mtom.py b/src/ceasiompy/WeightConventional/func/mtom.py similarity index 100% rename from ceasiompy/WeightConventional/func/mtom.py rename to src/ceasiompy/WeightConventional/func/mtom.py diff --git a/ceasiompy/WeightConventional/func/oem.py b/src/ceasiompy/WeightConventional/func/oem.py similarity index 100% rename from ceasiompy/WeightConventional/func/oem.py rename to src/ceasiompy/WeightConventional/func/oem.py diff --git a/ceasiompy/WeightConventional/func/weightutils.py b/src/ceasiompy/WeightConventional/func/weightutils.py similarity index 100% rename from ceasiompy/WeightConventional/func/weightutils.py rename to src/ceasiompy/WeightConventional/func/weightutils.py diff --git a/ceasiompy/WeightConventional/tests/.gitignore b/src/ceasiompy/WeightConventional/tests/.gitignore similarity index 100% rename from ceasiompy/WeightConventional/tests/.gitignore rename to src/ceasiompy/WeightConventional/tests/.gitignore diff --git a/ceasiompy/WeightConventional/tests/test_cabin.py b/src/ceasiompy/WeightConventional/tests/test_cabin.py similarity index 100% rename from ceasiompy/WeightConventional/tests/test_cabin.py rename to src/ceasiompy/WeightConventional/tests/test_cabin.py diff --git a/ceasiompy/WeightConventional/tests/test_mtom.py b/src/ceasiompy/WeightConventional/tests/test_mtom.py similarity index 100% rename from ceasiompy/WeightConventional/tests/test_mtom.py rename to src/ceasiompy/WeightConventional/tests/test_mtom.py diff --git a/ceasiompy/WeightConventional/tests/test_oem.py b/src/ceasiompy/WeightConventional/tests/test_oem.py similarity index 100% rename from ceasiompy/WeightConventional/tests/test_oem.py rename to src/ceasiompy/WeightConventional/tests/test_oem.py diff --git a/ceasiompy/WeightConventional/weightconventional.py b/src/ceasiompy/WeightConventional/weightconventional.py similarity index 100% rename from ceasiompy/WeightConventional/weightconventional.py rename to src/ceasiompy/WeightConventional/weightconventional.py diff --git a/ceasiompy/SU2MeshDef/ToolOutput/.keep b/src/ceasiompy/WeightUnconventional/ToolInput/.keep similarity index 100% rename from ceasiompy/SU2MeshDef/ToolOutput/.keep rename to src/ceasiompy/WeightUnconventional/ToolInput/.keep diff --git a/ceasiompy/WeightUnconventional/ToolInput/Tests/TEST1_cog.xml b/src/ceasiompy/WeightUnconventional/ToolInput/Tests/TEST1_cog.xml similarity index 100% rename from ceasiompy/WeightUnconventional/ToolInput/Tests/TEST1_cog.xml rename to src/ceasiompy/WeightUnconventional/ToolInput/Tests/TEST1_cog.xml diff --git a/ceasiompy/WeightUnconventional/ToolInput/Tests/TEST_MOI.xml b/src/ceasiompy/WeightUnconventional/ToolInput/Tests/TEST_MOI.xml similarity index 100% rename from ceasiompy/WeightUnconventional/ToolInput/Tests/TEST_MOI.xml rename to src/ceasiompy/WeightUnconventional/ToolInput/Tests/TEST_MOI.xml diff --git a/ceasiompy/WeightUnconventional/ToolInput/Tests/TEST_cog.xml b/src/ceasiompy/WeightUnconventional/ToolInput/Tests/TEST_cog.xml similarity index 100% rename from ceasiompy/WeightUnconventional/ToolInput/Tests/TEST_cog.xml rename to src/ceasiompy/WeightUnconventional/ToolInput/Tests/TEST_cog.xml diff --git a/ceasiompy/SkinFriction/ToolOutput/.keep b/src/ceasiompy/WeightUnconventional/ToolOutput/.keep similarity index 100% rename from ceasiompy/SkinFriction/ToolOutput/.keep rename to src/ceasiompy/WeightUnconventional/ToolOutput/.keep diff --git a/ceasiompy/WeightUnconventional/__init__.py b/src/ceasiompy/WeightUnconventional/__init__.py similarity index 100% rename from ceasiompy/WeightUnconventional/__init__.py rename to src/ceasiompy/WeightUnconventional/__init__.py diff --git a/ceasiompy/WeightUnconventional/__specs__.py b/src/ceasiompy/WeightUnconventional/__specs__.py similarity index 100% rename from ceasiompy/WeightUnconventional/__specs__.py rename to src/ceasiompy/WeightUnconventional/__specs__.py diff --git a/ceasiompy/WeightUnconventional/files/old_doc.rst b/src/ceasiompy/WeightUnconventional/files/old_doc.rst similarity index 100% rename from ceasiompy/WeightUnconventional/files/old_doc.rst rename to src/ceasiompy/WeightUnconventional/files/old_doc.rst diff --git a/ceasiompy/WeightUnconventional/func/Engines/__init__.py b/src/ceasiompy/WeightUnconventional/func/AinFunc/__init__.py similarity index 100% rename from ceasiompy/WeightUnconventional/func/Engines/__init__.py rename to src/ceasiompy/WeightUnconventional/func/AinFunc/__init__.py diff --git a/ceasiompy/WeightUnconventional/func/AinFunc/getinput.py b/src/ceasiompy/WeightUnconventional/func/AinFunc/getinput.py similarity index 100% rename from ceasiompy/WeightUnconventional/func/AinFunc/getinput.py rename to src/ceasiompy/WeightUnconventional/func/AinFunc/getinput.py diff --git a/ceasiompy/WeightUnconventional/func/Fuel/__init__.py b/src/ceasiompy/WeightUnconventional/func/AoutFunc/__init__.py similarity index 100% rename from ceasiompy/WeightUnconventional/func/Fuel/__init__.py rename to src/ceasiompy/WeightUnconventional/func/AoutFunc/__init__.py diff --git a/ceasiompy/WeightUnconventional/func/AoutFunc/cpacsweightupdate.py b/src/ceasiompy/WeightUnconventional/func/AoutFunc/cpacsweightupdate.py similarity index 99% rename from ceasiompy/WeightUnconventional/func/AoutFunc/cpacsweightupdate.py rename to src/ceasiompy/WeightUnconventional/func/AoutFunc/cpacsweightupdate.py index eeb9fc498..7584fb1c2 100755 --- a/ceasiompy/WeightUnconventional/func/AoutFunc/cpacsweightupdate.py +++ b/src/ceasiompy/WeightUnconventional/func/AoutFunc/cpacsweightupdate.py @@ -79,8 +79,6 @@ def toolspecific_update(mw, out, cpacs_out_path): tixi.save(cpacs_out_path) - return () - # ============================================================================= # CPACS MASS BREAKDOWN UPDATE @@ -192,8 +190,6 @@ def cpacs_weight_update(out, mw, ui, cpacs_out_path): tixi.save(cpacs_out_path) - return () - # ============================================================================= # CPACS ENGINE UPDATE @@ -245,8 +241,6 @@ def cpacs_engine_update(ui, ed, mw, cpacs_out_path): tixi.save(cpacs_out_path) - return () - # ============================================================================= # MAIN diff --git a/ceasiompy/WeightUnconventional/func/AoutFunc/outputweightgen.py b/src/ceasiompy/WeightUnconventional/func/AoutFunc/outputweightgen.py similarity index 99% rename from ceasiompy/WeightUnconventional/func/AoutFunc/outputweightgen.py rename to src/ceasiompy/WeightUnconventional/func/AoutFunc/outputweightgen.py index 50a334988..b4d5fe028 100755 --- a/ceasiompy/WeightUnconventional/func/AoutFunc/outputweightgen.py +++ b/src/ceasiompy/WeightUnconventional/func/AoutFunc/outputweightgen.py @@ -113,8 +113,6 @@ def output_fuse_txt(fus_nb, FLOORS_NB, ed, out, mw, adui, awg, afg, NAME): out_txt_file.close() - return () - def output_bwb_txt(FLOORS_NB, ed, out, mw, adui, awg, NAME): """The function generates the output text file for the @@ -201,8 +199,6 @@ def output_bwb_txt(FLOORS_NB, ed, out, mw, adui, awg, NAME): out_txt_file.close() - return () - # ============================================================================= # MAIN diff --git a/ceasiompy/WeightUnconventional/func/People/__init__.py b/src/ceasiompy/WeightUnconventional/func/Engines/__init__.py similarity index 100% rename from ceasiompy/WeightUnconventional/func/People/__init__.py rename to src/ceasiompy/WeightUnconventional/func/Engines/__init__.py diff --git a/ceasiompy/WeightUnconventional/func/Engines/enginesanalysis.py b/src/ceasiompy/WeightUnconventional/func/Engines/enginesanalysis.py similarity index 99% rename from ceasiompy/WeightUnconventional/func/Engines/enginesanalysis.py rename to src/ceasiompy/WeightUnconventional/func/Engines/enginesanalysis.py index dd38568ec..df51ca2eb 100755 --- a/ceasiompy/WeightUnconventional/func/Engines/enginesanalysis.py +++ b/src/ceasiompy/WeightUnconventional/func/Engines/enginesanalysis.py @@ -90,8 +90,6 @@ def check_ed(ed): else: log.info("EngineData class defined correctly.") - return () - # ============================================================================= # MAIN diff --git a/ceasiompy/WeightUnconventional/func/Systems/__init__.py b/src/ceasiompy/WeightUnconventional/func/Fuel/__init__.py similarity index 100% rename from ceasiompy/WeightUnconventional/func/Systems/__init__.py rename to src/ceasiompy/WeightUnconventional/func/Fuel/__init__.py diff --git a/ceasiompy/WeightUnconventional/func/Fuel/fuelmass.py b/src/ceasiompy/WeightUnconventional/func/Fuel/fuelmass.py similarity index 100% rename from ceasiompy/WeightUnconventional/func/Fuel/fuelmass.py rename to src/ceasiompy/WeightUnconventional/func/Fuel/fuelmass.py diff --git a/ceasiompy/WeightUnconventional/func/__init__.py b/src/ceasiompy/WeightUnconventional/func/People/__init__.py similarity index 100% rename from ceasiompy/WeightUnconventional/func/__init__.py rename to src/ceasiompy/WeightUnconventional/func/People/__init__.py diff --git a/ceasiompy/WeightUnconventional/func/People/crewmembers.py b/src/ceasiompy/WeightUnconventional/func/People/crewmembers.py similarity index 100% rename from ceasiompy/WeightUnconventional/func/People/crewmembers.py rename to src/ceasiompy/WeightUnconventional/func/People/crewmembers.py diff --git a/ceasiompy/WeightUnconventional/func/People/passengers.py b/src/ceasiompy/WeightUnconventional/func/People/passengers.py similarity index 100% rename from ceasiompy/WeightUnconventional/func/People/passengers.py rename to src/ceasiompy/WeightUnconventional/func/People/passengers.py diff --git a/ceasiompy/utils/InputClasses/Conventional/__init__.py b/src/ceasiompy/WeightUnconventional/func/Systems/__init__.py similarity index 100% rename from ceasiompy/utils/InputClasses/Conventional/__init__.py rename to src/ceasiompy/WeightUnconventional/func/Systems/__init__.py diff --git a/ceasiompy/WeightUnconventional/func/Systems/systemsmass.py b/src/ceasiompy/WeightUnconventional/func/Systems/systemsmass.py similarity index 100% rename from ceasiompy/WeightUnconventional/func/Systems/systemsmass.py rename to src/ceasiompy/WeightUnconventional/func/Systems/systemsmass.py diff --git a/ceasiompy/utils/InputClasses/Unconventional/__init__.py b/src/ceasiompy/WeightUnconventional/func/__init__.py similarity index 100% rename from ceasiompy/utils/InputClasses/Unconventional/__init__.py rename to src/ceasiompy/WeightUnconventional/func/__init__.py diff --git a/ceasiompy/WeightUnconventional/weightuncmain.py b/src/ceasiompy/WeightUnconventional/weightuncmain.py similarity index 100% rename from ceasiompy/WeightUnconventional/weightuncmain.py rename to src/ceasiompy/WeightUnconventional/weightuncmain.py diff --git a/ceasiompy/__init__.py b/src/ceasiompy/__init__.py similarity index 96% rename from ceasiompy/__init__.py rename to src/ceasiompy/__init__.py index fe5459763..ac73dcecd 100755 --- a/ceasiompy/__init__.py +++ b/src/ceasiompy/__init__.py @@ -31,8 +31,14 @@ # IMPORTS # ================================================================================================= +# /CEASIOMpy/src +SRC_PATH = Path(__file__).parents[1] + # /CEASIOMpy/ -CEASIOMPY_PATH = Path(__file__).parents[1] +CEASIOMPY_PATH = SRC_PATH.parent + +# /CEASIOMpy/WKDIR/ +WKDIR_PATH = Path(CEASIOMPY_PATH, "WKDIR") # /CEASIOMpy/ceasiompy.log LOGFILE = Path(CEASIOMPY_PATH, "ceasiompy.log") diff --git a/ceasiompy/utils/InputClasses/__init__.py b/src/ceasiompy/utils/InputClasses/Conventional/__init__.py similarity index 100% rename from ceasiompy/utils/InputClasses/__init__.py rename to src/ceasiompy/utils/InputClasses/Conventional/__init__.py diff --git a/ceasiompy/utils/InputClasses/Conventional/balanceconvclass.py b/src/ceasiompy/utils/InputClasses/Conventional/balanceconvclass.py similarity index 94% rename from ceasiompy/utils/InputClasses/Conventional/balanceconvclass.py rename to src/ceasiompy/utils/InputClasses/Conventional/balanceconvclass.py index a2394b4ad..bd5928c19 100755 --- a/ceasiompy/utils/InputClasses/Conventional/balanceconvclass.py +++ b/src/ceasiompy/utils/InputClasses/Conventional/balanceconvclass.py @@ -180,13 +180,3 @@ def __init__(self): self.cg_zpm = 0 self.cg_oem = 0 self.cg_user = 0 - - -# ============================================================================= -# MAIN -# ============================================================================= - -if __name__ == "__main__": - print("##########################################################") - print("### ERROR NOT A STANDALONE PROGRAM, RUN balancemain.py ###") - print("##########################################################") diff --git a/ceasiompy/utils/InputClasses/Conventional/weightconvclass.py b/src/ceasiompy/utils/InputClasses/Conventional/weightconvclass.py similarity index 100% rename from ceasiompy/utils/InputClasses/Conventional/weightconvclass.py rename to src/ceasiompy/utils/InputClasses/Conventional/weightconvclass.py diff --git a/ceasiompy/utils/WB/ConvGeometry/Fuselage/__init__.py b/src/ceasiompy/utils/InputClasses/Unconventional/__init__.py similarity index 100% rename from ceasiompy/utils/WB/ConvGeometry/Fuselage/__init__.py rename to src/ceasiompy/utils/InputClasses/Unconventional/__init__.py diff --git a/ceasiompy/utils/InputClasses/Unconventional/aircraftgeometryclass.py b/src/ceasiompy/utils/InputClasses/Unconventional/aircraftgeometryclass.py similarity index 100% rename from ceasiompy/utils/InputClasses/Unconventional/aircraftgeometryclass.py rename to src/ceasiompy/utils/InputClasses/Unconventional/aircraftgeometryclass.py diff --git a/ceasiompy/utils/InputClasses/Unconventional/balanceuncclass.py b/src/ceasiompy/utils/InputClasses/Unconventional/balanceuncclass.py similarity index 100% rename from ceasiompy/utils/InputClasses/Unconventional/balanceuncclass.py rename to src/ceasiompy/utils/InputClasses/Unconventional/balanceuncclass.py diff --git a/ceasiompy/utils/InputClasses/Unconventional/engineclass.py b/src/ceasiompy/utils/InputClasses/Unconventional/engineclass.py similarity index 100% rename from ceasiompy/utils/InputClasses/Unconventional/engineclass.py rename to src/ceasiompy/utils/InputClasses/Unconventional/engineclass.py diff --git a/ceasiompy/utils/InputClasses/Unconventional/weightuncclass.py b/src/ceasiompy/utils/InputClasses/Unconventional/weightuncclass.py similarity index 100% rename from ceasiompy/utils/InputClasses/Unconventional/weightuncclass.py rename to src/ceasiompy/utils/InputClasses/Unconventional/weightuncclass.py diff --git a/ceasiompy/utils/WB/ConvGeometry/__init__.py b/src/ceasiompy/utils/InputClasses/__init__.py similarity index 100% rename from ceasiompy/utils/WB/ConvGeometry/__init__.py rename to src/ceasiompy/utils/InputClasses/__init__.py diff --git a/ceasiompy/utils/WB/UncGeometry/NoFuseGeom/__init__.py b/src/ceasiompy/utils/WB/ConvGeometry/Fuselage/__init__.py similarity index 100% rename from ceasiompy/utils/WB/UncGeometry/NoFuseGeom/__init__.py rename to src/ceasiompy/utils/WB/ConvGeometry/Fuselage/__init__.py diff --git a/ceasiompy/utils/WB/ConvGeometry/Fuselage/fusegeom.py b/src/ceasiompy/utils/WB/ConvGeometry/Fuselage/fusegeom.py similarity index 100% rename from ceasiompy/utils/WB/ConvGeometry/Fuselage/fusegeom.py rename to src/ceasiompy/utils/WB/ConvGeometry/Fuselage/fusegeom.py diff --git a/ceasiompy/utils/WB/UncGeometry/Output/__init__.py b/src/ceasiompy/utils/WB/ConvGeometry/__init__.py similarity index 100% rename from ceasiompy/utils/WB/UncGeometry/Output/__init__.py rename to src/ceasiompy/utils/WB/ConvGeometry/__init__.py diff --git a/ceasiompy/utils/WB/ConvGeometry/geometry.py b/src/ceasiompy/utils/WB/ConvGeometry/geometry.py similarity index 100% rename from ceasiompy/utils/WB/ConvGeometry/geometry.py rename to src/ceasiompy/utils/WB/ConvGeometry/geometry.py diff --git a/ceasiompy/utils/WB/UncGeometry/WithFuseGeom/Fuselages/__init__.py b/src/ceasiompy/utils/WB/UncGeometry/NoFuseGeom/__init__.py similarity index 100% rename from ceasiompy/utils/WB/UncGeometry/WithFuseGeom/Fuselages/__init__.py rename to src/ceasiompy/utils/WB/UncGeometry/NoFuseGeom/__init__.py diff --git a/ceasiompy/utils/WB/UncGeometry/NoFuseGeom/bwbwingsanalysis.py b/src/ceasiompy/utils/WB/UncGeometry/NoFuseGeom/bwbwingsanalysis.py similarity index 100% rename from ceasiompy/utils/WB/UncGeometry/NoFuseGeom/bwbwingsanalysis.py rename to src/ceasiompy/utils/WB/UncGeometry/NoFuseGeom/bwbwingsanalysis.py diff --git a/ceasiompy/utils/WB/UncGeometry/NoFuseGeom/volumesdefinition.py b/src/ceasiompy/utils/WB/UncGeometry/NoFuseGeom/volumesdefinition.py similarity index 100% rename from ceasiompy/utils/WB/UncGeometry/NoFuseGeom/volumesdefinition.py rename to src/ceasiompy/utils/WB/UncGeometry/NoFuseGeom/volumesdefinition.py diff --git a/ceasiompy/utils/WB/UncGeometry/WithFuseGeom/Wings/__init__.py b/src/ceasiompy/utils/WB/UncGeometry/Output/__init__.py similarity index 100% rename from ceasiompy/utils/WB/UncGeometry/WithFuseGeom/Wings/__init__.py rename to src/ceasiompy/utils/WB/UncGeometry/Output/__init__.py diff --git a/ceasiompy/utils/WB/UncGeometry/Output/outputgeom.py b/src/ceasiompy/utils/WB/UncGeometry/Output/outputgeom.py similarity index 99% rename from ceasiompy/utils/WB/UncGeometry/Output/outputgeom.py rename to src/ceasiompy/utils/WB/UncGeometry/Output/outputgeom.py index 9f89169de..730f10d42 100755 --- a/ceasiompy/utils/WB/UncGeometry/Output/outputgeom.py +++ b/src/ceasiompy/utils/WB/UncGeometry/Output/outputgeom.py @@ -128,8 +128,6 @@ def produce_wing_output_txt(awg, NAME): # Close Text File OutputTextFile.close() - return () - def produce_geom_output_txt(afg, awg, NAME): """Function to generate the output file with all the geometry data @@ -279,13 +277,12 @@ def produce_geom_output_txt(afg, awg, NAME): # Close Text File OutputTextFile.close() - return () - # ============================================================================= # MAIN # ============================================================================== + if __name__ == "__main__": print("#######################################################") diff --git a/ceasiompy/utils/WB/UncGeometry/WithFuseGeom/__init__.py b/src/ceasiompy/utils/WB/UncGeometry/WithFuseGeom/Fuselages/__init__.py similarity index 100% rename from ceasiompy/utils/WB/UncGeometry/WithFuseGeom/__init__.py rename to src/ceasiompy/utils/WB/UncGeometry/WithFuseGeom/Fuselages/__init__.py diff --git a/ceasiompy/utils/WB/UncGeometry/WithFuseGeom/Fuselages/fusegeom.py b/src/ceasiompy/utils/WB/UncGeometry/WithFuseGeom/Fuselages/fusegeom.py similarity index 100% rename from ceasiompy/utils/WB/UncGeometry/WithFuseGeom/Fuselages/fusegeom.py rename to src/ceasiompy/utils/WB/UncGeometry/WithFuseGeom/Fuselages/fusegeom.py diff --git a/ceasiompy/utils/WB/UncGeometry/__init__.py b/src/ceasiompy/utils/WB/UncGeometry/WithFuseGeom/Wings/__init__.py similarity index 100% rename from ceasiompy/utils/WB/UncGeometry/__init__.py rename to src/ceasiompy/utils/WB/UncGeometry/WithFuseGeom/Wings/__init__.py diff --git a/ceasiompy/utils/WB/UncGeometry/WithFuseGeom/Wings/wingsgeom.py b/src/ceasiompy/utils/WB/UncGeometry/WithFuseGeom/Wings/wingsgeom.py similarity index 100% rename from ceasiompy/utils/WB/UncGeometry/WithFuseGeom/Wings/wingsgeom.py rename to src/ceasiompy/utils/WB/UncGeometry/WithFuseGeom/Wings/wingsgeom.py diff --git a/ceasiompy/utils/WB/__init__.py b/src/ceasiompy/utils/WB/UncGeometry/WithFuseGeom/__init__.py similarity index 100% rename from ceasiompy/utils/WB/__init__.py rename to src/ceasiompy/utils/WB/UncGeometry/WithFuseGeom/__init__.py diff --git a/ceasiompy/utils/tests/tests_logger/__init__.py b/src/ceasiompy/utils/WB/UncGeometry/__init__.py similarity index 100% rename from ceasiompy/utils/tests/tests_logger/__init__.py rename to src/ceasiompy/utils/WB/UncGeometry/__init__.py diff --git a/ceasiompy/utils/WB/UncGeometry/uncgeomanalysis.py b/src/ceasiompy/utils/WB/UncGeometry/uncgeomanalysis.py similarity index 100% rename from ceasiompy/utils/WB/UncGeometry/uncgeomanalysis.py rename to src/ceasiompy/utils/WB/UncGeometry/uncgeomanalysis.py diff --git a/ceasiompy/utils/tests/tests_mathfunctions/__init__.py b/src/ceasiompy/utils/WB/__init__.py similarity index 100% rename from ceasiompy/utils/tests/tests_mathfunctions/__init__.py rename to src/ceasiompy/utils/WB/__init__.py diff --git a/ceasiompy/utils/__init__.py b/src/ceasiompy/utils/__init__.py similarity index 73% rename from ceasiompy/utils/__init__.py rename to src/ceasiompy/utils/__init__.py index d3c435c7d..07a632354 100755 --- a/ceasiompy/utils/__init__.py +++ b/src/ceasiompy/utils/__init__.py @@ -31,11 +31,3 @@ "__AEROMAP_SELECTION", "__AEROMAP_CHECKBOX", ] - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - log.info("Nothing to be executed.") diff --git a/ceasiompy/utils/ceasiompylogger.py b/src/ceasiompy/utils/ceasiompylogger.py similarity index 100% rename from ceasiompy/utils/ceasiompylogger.py rename to src/ceasiompy/utils/ceasiompylogger.py diff --git a/ceasiompy/utils/ceasiompytest.py b/src/ceasiompy/utils/ceasiompytest.py similarity index 100% rename from ceasiompy/utils/ceasiompytest.py rename to src/ceasiompy/utils/ceasiompytest.py diff --git a/ceasiompy/utils/ceasiompyutils.py b/src/ceasiompy/utils/ceasiompyutils.py similarity index 98% rename from ceasiompy/utils/ceasiompyutils.py rename to src/ceasiompy/utils/ceasiompyutils.py index a9ab76036..9694bc608 100755 --- a/ceasiompy/utils/ceasiompyutils.py +++ b/src/ceasiompy/utils/ceasiompyutils.py @@ -433,6 +433,7 @@ def run_software( nb_cpu: int = 1, stdin: Optional[TextIO] = None, log_bool: bool = True, + xvfb: bool = False, ) -> None: """Run a software with the given arguments in a specific wkdir. If the software is compatible with MPI, 'with_mpi' can be set to True and the number of processors can be specified. A @@ -463,18 +464,17 @@ def run_software( command_line = [] if with_mpi: mpi_install_path = get_install_path("mpirun") # "mpirun.mpich" + # If runs with open mpi add --allow-run-as-root if mpi_install_path is not None: command_line += [mpi_install_path, "-np", str(int(nb_cpu))] command_line += [install_path] command_line += arguments - # Use xvfb to run sumo to avoid problems with X11 (e.g. when running test on Github actions) - if software_name in ["sumo", "dwfsumo"] and sys.platform == "linux": - if shutil.which("xvfb-run"): - command_line = ["xvfb-run", "--auto-servernum"] + command_line - else: - log.warning("xvfb-run not found. Proceeding without it.") + if xvfb: + command_line = ["xvfb-run", "--auto-servernum"] + command_line + else: + log.warning("xvfb-run not found. Proceeding without it.") log.info(f">>> Running {software_name} on {int(nb_cpu)} cpu(s)") log.info(f"Working directory: {wkdir}") diff --git a/ceasiompy/utils/commonnames.py b/src/ceasiompy/utils/commonnames.py similarity index 100% rename from ceasiompy/utils/commonnames.py rename to src/ceasiompy/utils/commonnames.py diff --git a/ceasiompy/utils/commonpaths.py b/src/ceasiompy/utils/commonpaths.py similarity index 80% rename from ceasiompy/utils/commonpaths.py rename to src/ceasiompy/utils/commonpaths.py index c9f097b4f..bffa849d4 100755 --- a/ceasiompy/utils/commonpaths.py +++ b/src/ceasiompy/utils/commonpaths.py @@ -17,7 +17,7 @@ # IMPORTS # ================================================================================================= -import ceasiompy.__init__ +import ceasiompy from pathlib import Path @@ -27,16 +27,19 @@ # CSTS # ================================================================================================= +# /CEASIOMpy/src +SRC_PATH = Path(ceasiompy.__file__).parents[1] + # /CEASIOMpy/ -CEASIOMPY_PATH = Path(ceasiompy.__file__).parents[1] +CEASIOMPY_PATH = SRC_PATH.parent -# /CEASIOMpy/ceasiompy/ -MODULES_DIR_PATH = Path(ceasiompy.__file__).parent +# /CEASIOMpy/src/ceasiompy/ +MODULES_DIR_PATH = Path(SRC_PATH, "ceasiompy") -# /CEASIOMpy/ceasiompy/Database/databases/ceasiompy.db +# /CEASIOMpy/src/ceasiompy/Database/databases/ceasiompy.db CEASIOMPY_DB_PATH = Path(MODULES_DIR_PATH, "Database", "databases", "ceasiompy.db") -# /CEASIOMpy/ceasiompy/Database/tests/databases/testceasiompy.db +# /CEASIOMpy/src/ceasiompy/Database/tests/databases/testceasiompy.db TESTCEASIOMPY_DB_PATH = Path( MODULES_DIR_PATH, "Database", @@ -48,14 +51,11 @@ # /CEASIOMpy/documents/logos/CEASIOMpy_main_logos.png CEASIOMPY_LOGO_PATH = Path(CEASIOMPY_PATH, "documents", "logos", "CEASIOMpy_512px.png") -# /CEASIOMpy/ceasiompy.log -LOGFILE = Path(CEASIOMPY_PATH, "ceasiompy.log") - # /CEASIOMpy/.ceasiompy/.runworkflow_history RUNWORKFLOW_HISTORY_PATH = Path(CEASIOMPY_PATH, ".ceasiompy", ".runworkflow_history") -# /CEASIOMpy/src/streamlit -STREAMLIT_PATH = Path(CEASIOMPY_PATH, "src", "streamlit") +# /CEASIOMpy/src/CEASIOMpyStreamlit +STREAMLIT_PATH = Path(SRC_PATH, "CEASIOMpyStreamlit") # /CEASIOMpy/test_cases/ TEST_CASES_PATH = Path(CEASIOMPY_PATH, "test_cases") @@ -66,10 +66,13 @@ # /CEASIOMpy/test_files/ResultsFiles/ TEST_RESULTS_FILES_PATH = Path(CEASIOMPY_PATH, "test_files", "ResultsFiles") -# /CEASIOMpy/ceasiompy/WKDIR/ +# /CEASIOMpy/WKDIR/ WKDIR_PATH = Path(CEASIOMPY_PATH, "WKDIR") -# /CEASIOMpy/ceasiompy/SU2Run/files/default_paraview_state.pvsm +# /CEASIOMpy/ceasiompy.log +LOGFILE = Path(CEASIOMPY_PATH, "ceasiompy.log") + +# /CEASIOMpy/src/ceasiompy/SU2Run/files/default_paraview_state.pvsm DEFAULT_PARAVIEW_STATE = Path(MODULES_DIR_PATH, "SU2Run", "files", "default_paraview_state.pvsm") diff --git a/ceasiompy/utils/commonxpaths.py b/src/ceasiompy/utils/commonxpaths.py similarity index 100% rename from ceasiompy/utils/commonxpaths.py rename to src/ceasiompy/utils/commonxpaths.py diff --git a/ceasiompy/utils/configfiles.py b/src/ceasiompy/utils/configfiles.py similarity index 100% rename from ceasiompy/utils/configfiles.py rename to src/ceasiompy/utils/configfiles.py diff --git a/ceasiompy/utils/decorators.py b/src/ceasiompy/utils/decorators.py similarity index 100% rename from ceasiompy/utils/decorators.py rename to src/ceasiompy/utils/decorators.py diff --git a/ceasiompy/utils/doc/empty_cpacs.xml b/src/ceasiompy/utils/doc/empty_cpacs.xml similarity index 100% rename from ceasiompy/utils/doc/empty_cpacs.xml rename to src/ceasiompy/utils/doc/empty_cpacs.xml diff --git a/ceasiompy/utils/doc/input_toolspecifics.xml b/src/ceasiompy/utils/doc/input_toolspecifics.xml similarity index 100% rename from ceasiompy/utils/doc/input_toolspecifics.xml rename to src/ceasiompy/utils/doc/input_toolspecifics.xml diff --git a/ceasiompy/utils/doc/output_toolspecifics.xml b/src/ceasiompy/utils/doc/output_toolspecifics.xml similarity index 100% rename from ceasiompy/utils/doc/output_toolspecifics.xml rename to src/ceasiompy/utils/doc/output_toolspecifics.xml diff --git a/ceasiompy/utils/generalclasses.py b/src/ceasiompy/utils/generalclasses.py similarity index 100% rename from ceasiompy/utils/generalclasses.py rename to src/ceasiompy/utils/generalclasses.py diff --git a/ceasiompy/utils/geometryfunctions.py b/src/ceasiompy/utils/geometryfunctions.py similarity index 100% rename from ceasiompy/utils/geometryfunctions.py rename to src/ceasiompy/utils/geometryfunctions.py diff --git a/ceasiompy/utils/mathsfunctions.py b/src/ceasiompy/utils/mathsfunctions.py similarity index 100% rename from ceasiompy/utils/mathsfunctions.py rename to src/ceasiompy/utils/mathsfunctions.py diff --git a/ceasiompy/utils/moduleinterfaces.py b/src/ceasiompy/utils/moduleinterfaces.py similarity index 100% rename from ceasiompy/utils/moduleinterfaces.py rename to src/ceasiompy/utils/moduleinterfaces.py diff --git a/ceasiompy/utils/tests/tests_ceasiompyutils/test_ceasiompyutils.py b/src/ceasiompy/utils/tests/tests_ceasiompyutils/test_ceasiompyutils.py similarity index 100% rename from ceasiompy/utils/tests/tests_ceasiompyutils/test_ceasiompyutils.py rename to src/ceasiompy/utils/tests/tests_ceasiompyutils/test_ceasiompyutils.py diff --git a/ceasiompy/utils/tests/tests_ceasiompyutils/tmp/.keep b/src/ceasiompy/utils/tests/tests_ceasiompyutils/tmp/.keep similarity index 100% rename from ceasiompy/utils/tests/tests_ceasiompyutils/tmp/.keep rename to src/ceasiompy/utils/tests/tests_ceasiompyutils/tmp/.keep diff --git a/ceasiompy/utils/tests/tests_configfiles/config_test0.cfg b/src/ceasiompy/utils/tests/tests_configfiles/config_test0.cfg similarity index 100% rename from ceasiompy/utils/tests/tests_configfiles/config_test0.cfg rename to src/ceasiompy/utils/tests/tests_configfiles/config_test0.cfg diff --git a/ceasiompy/utils/tests/tests_configfiles/config_test1.cfg b/src/ceasiompy/utils/tests/tests_configfiles/config_test1.cfg similarity index 100% rename from ceasiompy/utils/tests/tests_configfiles/config_test1.cfg rename to src/ceasiompy/utils/tests/tests_configfiles/config_test1.cfg diff --git a/ceasiompy/utils/tests/tests_configfiles/config_test2.cfg b/src/ceasiompy/utils/tests/tests_configfiles/config_test2.cfg similarity index 100% rename from ceasiompy/utils/tests/tests_configfiles/config_test2.cfg rename to src/ceasiompy/utils/tests/tests_configfiles/config_test2.cfg diff --git a/ceasiompy/utils/tests/tests_configfiles/test_configfiles.py b/src/ceasiompy/utils/tests/tests_configfiles/test_configfiles.py similarity index 100% rename from ceasiompy/utils/tests/tests_configfiles/test_configfiles.py rename to src/ceasiompy/utils/tests/tests_configfiles/test_configfiles.py diff --git a/ceasiompy/utils/tests/tests_gereralclasses/simpletest_cpacs.xml b/src/ceasiompy/utils/tests/tests_gereralclasses/simpletest_cpacs.xml similarity index 100% rename from ceasiompy/utils/tests/tests_gereralclasses/simpletest_cpacs.xml rename to src/ceasiompy/utils/tests/tests_gereralclasses/simpletest_cpacs.xml diff --git a/ceasiompy/utils/tests/tests_gereralclasses/test_generalclasses.py b/src/ceasiompy/utils/tests/tests_gereralclasses/test_generalclasses.py similarity index 100% rename from ceasiompy/utils/tests/tests_gereralclasses/test_generalclasses.py rename to src/ceasiompy/utils/tests/tests_gereralclasses/test_generalclasses.py diff --git a/src/streamlit/__init__.py b/src/ceasiompy/utils/tests/tests_logger/__init__.py similarity index 100% rename from src/streamlit/__init__.py rename to src/ceasiompy/utils/tests/tests_logger/__init__.py diff --git a/ceasiompy/utils/tests/tests_logger/test_ceasiomlogger.py b/src/ceasiompy/utils/tests/tests_logger/test_ceasiomlogger.py similarity index 84% rename from ceasiompy/utils/tests/tests_logger/test_ceasiomlogger.py rename to src/ceasiompy/utils/tests/tests_logger/test_ceasiomlogger.py index 27f02aaf7..7c6d2c5b4 100755 --- a/ceasiompy/utils/tests/tests_logger/test_ceasiomlogger.py +++ b/src/ceasiompy/utils/tests/tests_logger/test_ceasiomlogger.py @@ -54,13 +54,3 @@ def test_logger(): assert warning_line_default in last_lines[2] assert error_line_default in last_lines[3] assert critical_line_default in last_lines[4] - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - print("Running Test CEASIOMLogger") - print("To run test use the following command:") - print(">> pytest -v") diff --git a/src/ceasiompy/utils/tests/tests_mathfunctions/__init__.py b/src/ceasiompy/utils/tests/tests_mathfunctions/__init__.py new file mode 100755 index 000000000..e69de29bb diff --git a/ceasiompy/utils/tests/tests_mathfunctions/test_mathfunctions.py b/src/ceasiompy/utils/tests/tests_mathfunctions/test_mathfunctions.py similarity index 100% rename from ceasiompy/utils/tests/tests_mathfunctions/test_mathfunctions.py rename to src/ceasiompy/utils/tests/tests_mathfunctions/test_mathfunctions.py diff --git a/ceasiompy/utils/tests/tests_moduleinterfaces/ToolInput/D150_AGILE_Hangar_v3.xml b/src/ceasiompy/utils/tests/tests_moduleinterfaces/ToolInput/D150_AGILE_Hangar_v3.xml similarity index 100% rename from ceasiompy/utils/tests/tests_moduleinterfaces/ToolInput/D150_AGILE_Hangar_v3.xml rename to src/ceasiompy/utils/tests/tests_moduleinterfaces/ToolInput/D150_AGILE_Hangar_v3.xml diff --git a/ceasiompy/utils/tests/tests_moduleinterfaces/ToolInput/cpacs_test_file.xml b/src/ceasiompy/utils/tests/tests_moduleinterfaces/ToolInput/cpacs_test_file.xml similarity index 100% rename from ceasiompy/utils/tests/tests_moduleinterfaces/ToolInput/cpacs_test_file.xml rename to src/ceasiompy/utils/tests/tests_moduleinterfaces/ToolInput/cpacs_test_file.xml diff --git a/ceasiompy/utils/tests/tests_moduleinterfaces/test_moduleinterfaces.py b/src/ceasiompy/utils/tests/tests_moduleinterfaces/test_moduleinterfaces.py similarity index 90% rename from ceasiompy/utils/tests/tests_moduleinterfaces/test_moduleinterfaces.py rename to src/ceasiompy/utils/tests/tests_moduleinterfaces/test_moduleinterfaces.py index fa866153a..bd26fa291 100755 --- a/ceasiompy/utils/tests/tests_moduleinterfaces/test_moduleinterfaces.py +++ b/src/ceasiompy/utils/tests/tests_moduleinterfaces/test_moduleinterfaces.py @@ -14,14 +14,11 @@ # IMPORTS # ================================================================================================= +import pytest import streamlit as st from pathlib import Path -from cpacspy.cpacspy import CPACS -import pytest from ceasiompy.utils.moduleinterfaces import ( - CPACSInOut, - CPACSRequirementError, check_cpacs_input_requirements, get_all_module_specs, get_module_path, @@ -30,8 +27,19 @@ get_toolinput_file_path, get_tooloutput_file_path, ) -from ceasiompy.utils.commonpaths import MODULES_DIR_PATH, CPACS_FILES_PATH + +from cpacspy.cpacspy import CPACS +from unittest.mock import MagicMock +from ceasiompy.utils.moduleinterfaces import ( + CPACSInOut, + CPACSRequirementError, +) + from ceasiompy.utils.commonxpaths import RANGE_CRUISE_ALT_XPATH +from ceasiompy.utils.commonpaths import ( + MODULES_DIR_PATH, + CPACS_FILES_PATH, +) MODULE_DIR = Path(__file__).parent CPACS_TEST_FILE = Path(MODULE_DIR, "ToolInput", "cpacs_test_file.xml") @@ -197,25 +205,7 @@ def test_get_all_module_specs(): """ Test that 'get_all_module_specs()' runs """ + st.session_state = MagicMock() st.session_state.cpacs = CPACS(Path(CPACS_FILES_PATH, "D150_simple.xml")) all_specs = get_all_module_specs() assert isinstance(all_specs, dict) - - -def test_create_default_toolspecific(): - """ - Test that 'create_default_toolspecific' works - """ - - pass - # TODO: how to test that... - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - print("Test moduleinterfaces.py") - print("To run test use the following command:") - print(">> pytest -v") diff --git a/src/ceasiompy/utils/tests/tests_workflowclasses/.gitignore b/src/ceasiompy/utils/tests/tests_workflowclasses/.gitignore new file mode 100755 index 000000000..ed30f1bbf --- /dev/null +++ b/src/ceasiompy/utils/tests/tests_workflowclasses/.gitignore @@ -0,0 +1,2 @@ +D150_simple_out.xml +/WKFLOW_test/Workflow_* \ No newline at end of file diff --git a/src/ceasiompy/utils/tests/tests_workflowclasses/D150_simple.xml b/src/ceasiompy/utils/tests/tests_workflowclasses/D150_simple.xml new file mode 100755 index 000000000..79506f1bf --- /dev/null +++ b/src/ceasiompy/utils/tests/tests_workflowclasses/D150_simple.xml @@ -0,0 +1,5236 @@ + + +
+ D150 + D150 geometry + Pier Davide Ciampa + 2017-09-04T12:00:00 + 0.1 + 3.0 + + + Converted to cpacs 3.0 using cpacs2to3 + cpacs2to3 + 2019-01-31T16:03:44 + 1.1 + 3.0 + + + Fixed order of wing profiles. + fix_errors.py + 2019-04-29T20:48:14 + 1.2.0 + 3.0 + + + Changed uID and names to more simplified ones + Vivien Riolo + 2020-02-13T20:48:14 + 3.1 + 3.0 + + + Added missing names + Vivien Riolo + 2020-05-14T10:29:00 + 3.1 + 3.0 + + + + Simplified version for CEASIOMpy + Aidan Jungo + 2020-06-15T10:29:00 + 3.1 + 3.0 + +
+ + + + VAMP_D150 + VAMP_D150 model + + 122.4 + 4.193 + + 0 + 0 + 0 + + + + + D150 fuselage + Beschreibung Rumpf + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + -0.723764 + + + +
+ Name Rumpf_Sec1 + Beschreibung Rumpf_Sec1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec1_Elem1 + Beschreibung Rumpf_Sec1_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec2 + Beschreibung Rumpf_Sec2 + + + 0.318014 + 0.318014 + 0.272892 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec2_Elem1 + Beschreibung Rumpf_Sec2_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec3 + Beschreibung Rumpf_Sec3 + + + 0.483994 + 0.483994 + 0.431741 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec3_Elem1 + Beschreibung Rumpf_Sec3_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec4 + Beschreibung Rumpf_Sec4 + + + 0 + 0.587009 + 0.546778 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec4_Elem1 + Beschreibung Rumpf_Sec4_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec5 + Beschreibung Rumpf_Sec5 + + + 0 + 0.692988 + 0.666204 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec5_Elem1 + Beschreibung Rumpf_Sec5_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec6 + Beschreibung Rumpf_Sec6 + + + 0 + 0.739005 + 0.713329 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec6_Elem1 + Beschreibung Rumpf_Sec6_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec7 + Beschreibung Rumpf_Sec7 + + + 0 + 0.796991 + 0.770267 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec7_Elem1 + Beschreibung Rumpf_Sec7_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec8 + Beschreibung Rumpf_Sec8 + + + 0 + 0.882983 + 0.854992 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec8_Elem1 + Beschreibung Rumpf_Sec8_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec9 + Beschreibung Rumpf_Sec9 + + + 0 + 0.961983 + 0.933133 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec9_Elem1 + Beschreibung Rumpf_Sec9_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec10 + Beschreibung Rumpf_Sec10 + + + 0 + 1.05698 + 1.01459 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec10_Elem1 + Beschreibung Rumpf_Sec10_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec11 + Beschreibung Rumpf_Sec11 + + + 0 + 1.15601 + 1.08726 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec11_Elem1 + Beschreibung Rumpf_Sec11_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec12 + Beschreibung Rumpf_Sec12 + + + 0 + 1.21399 + 1.17078 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec12_Elem1 + Beschreibung Rumpf_Sec12_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec13 + Beschreibung Rumpf_Sec13 + + + 0 + 1.28 + 1.25646 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec13_Elem1 + Beschreibung Rumpf_Sec13_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec14 + Beschreibung Rumpf_Sec14 + + + 0 + 1.346 + 1.3698 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec14_Elem1 + Beschreibung Rumpf_Sec14_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec15 + Beschreibung Rumpf_Sec15 + + + 0 + 1.4 + 1.46368 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec15_Elem1 + Beschreibung Rumpf_Sec15_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec16 + Beschreibung Rumpf_Sec16 + + + 0 + 1.45399 + 1.56066 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec16_Elem1 + Beschreibung Rumpf_Sec16_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec17 + Beschreibung Rumpf_Sec17 + + + 0 + 1.51601 + 1.64932 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec17_Elem1 + Beschreibung Rumpf_Sec17_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec18 + Beschreibung Rumpf_Sec18 + + + 0 + 1.58999 + 1.74597 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec18_Elem1 + Beschreibung Rumpf_Sec18_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec19 + Beschreibung Rumpf_Sec19 + + + 0 + 1.67298 + 1.83923 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec19_Elem1 + Beschreibung Rumpf_Sec19_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec20 + Beschreibung Rumpf_Sec20 + + + 0 + 1.76 + 1.91761 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec20_Elem1 + Beschreibung Rumpf_Sec20_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec21 + Beschreibung Rumpf_Sec21 + + + 0 + 1.82202 + 1.97136 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec21_Elem1 + Beschreibung Rumpf_Sec21_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec22 + Beschreibung Rumpf_Sec22 + + + 0 + 1.88 + 2.0018 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec22_Elem1 + Beschreibung Rumpf_Sec22_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec23 + Beschreibung Rumpf_Sec23 + + + 0 + 1.93301 + 2.03924 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec23_Elem1 + Beschreibung Rumpf_Sec23_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec24 + Beschreibung Rumpf_Sec24 + + + 0 + 1.96299 + 2.0558 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec24_Elem1 + Beschreibung Rumpf_Sec24_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec25 + Beschreibung Rumpf_Sec25 + + + 0 + 1.975 + 2.06416 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec25_Elem1 + Beschreibung Rumpf_Sec25_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec26 + Beschreibung Rumpf_Sec26 + + + 0 + 1.975 + 2.06818 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec26_Elem1 + Beschreibung Rumpf_Sec26_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec27 + Beschreibung Rumpf_Sec27 + + + 0 + 1.975 + 2.0705 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec27_Elem1 + Beschreibung Rumpf_Sec27_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec28 + Beschreibung Rumpf_Sec28 + + + 0 + 1.975 + 2.0705 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec28_Elem1 + Beschreibung Rumpf_Sec28_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec29 + Beschreibung Rumpf_Sec29 + + + 0 + 1.975 + 2.0705 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec29_Elem1 + Beschreibung Rumpf_Sec29_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec30 + Beschreibung Rumpf_Sec30 + + + 0 + 1.975 + 2.0705 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec30_Elem1 + Beschreibung Rumpf_Sec30_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec31 + Beschreibung Rumpf_Sec31 + + + 0 + 1.975 + 2.0705 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec31_Elem1 + Beschreibung Rumpf_Sec31_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec32 + Beschreibung Rumpf_Sec32 + + + 0 + 1.975 + 2.0705 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec32_Elem1 + Beschreibung Rumpf_Sec32_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec33 + Beschreibung Rumpf_Sec33 + + + 0 + 1.975 + 2.0705 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec33_Elem1 + Beschreibung Rumpf_Sec33_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec34 + Beschreibung Rumpf_Sec34 + + + 0 + 1.975 + 2.06872 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec34_Elem1 + Beschreibung Rumpf_Sec34_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec35 + Beschreibung Rumpf_Sec35 + + + 0 + 1.975 + 2.05862 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec35_Elem1 + Beschreibung Rumpf_Sec35_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec36 + Beschreibung Rumpf_Sec36 + + + 0 + 1.975 + 2.04209 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec36_Elem1 + Beschreibung Rumpf_Sec36_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec37 + Beschreibung Rumpf_Sec37 + + + 0 + 1.975 + 2.01907 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec37_Elem1 + Beschreibung Rumpf_Sec37_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec38 + Beschreibung Rumpf_Sec38 + + + 0 + 1.975 + 1.99025 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec38_Elem1 + Beschreibung Rumpf_Sec38_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec39 + Beschreibung Rumpf_Sec39 + + + 0 + 1.97299 + 1.95501 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec39_Elem1 + Beschreibung Rumpf_Sec39_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec40 + Beschreibung Rumpf_Sec40 + + + 0 + 1.95999 + 1.91401 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec40_Elem1 + Beschreibung Rumpf_Sec40_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec41 + Beschreibung Rumpf_Sec41 + + + 0 + 1.92799 + 1.86747 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec41_Elem1 + Beschreibung Rumpf_Sec41_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec42 + Beschreibung Rumpf_Sec42 + + + 0 + 1.88672 + 1.81094 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec42_Elem1 + Beschreibung Rumpf_Sec42_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec43 + Beschreibung Rumpf_Sec43 + + + 0 + 1.81712 + 1.74995 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec43_Elem1 + Beschreibung Rumpf_Sec43_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec44 + Beschreibung Rumpf_Sec44 + + + 0 + 1.66232 + 1.63632 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec44_Elem1 + Beschreibung Rumpf_Sec44_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec45 + Beschreibung Rumpf_Sec45 + + + 0 + 1.58352 + 1.57114 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec45_Elem1 + Beschreibung Rumpf_Sec45_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec46 + Beschreibung Rumpf_Sec46 + + + 0 + 1.46991 + 1.49271 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec46_Elem1 + Beschreibung Rumpf_Sec46_Element1 + Fuselage1_ProfSupEl1 + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec47 + Beschreibung Rumpf_Sec47 + + + 0 + 1.39668 + 1.44268 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec47_Elem1 + Beschreibung Rumpf_Sec47_Element1 + Fuselage1_ProfSupEl2 + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec48 + Beschreibung Rumpf_Sec48 + + + 0 + 1.299 + 1.37937 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec48_Elem1 + Beschreibung Rumpf_Sec48_Element1 + Fuselage1_ProfSupEl3 + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec49 + Beschreibung Rumpf_Sec49 + + + 0 + 1.20511 + 1.32168 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec49_Elem1 + Beschreibung Rumpf_Sec49_Element1 + Fuselage1_ProfSupEl4 + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec50 + Beschreibung Rumpf_Sec50 + + + 0 + 1.125 + 1.26259 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec50_Elem1 + Beschreibung Rumpf_Sec50_Element1 + Fuselage1_ProfSupEl5 + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec51 + Beschreibung Rumpf_Sec51 + + + 0 + 1.03328 + 1.19985 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec51_Elem1 + Beschreibung Rumpf_Sec51_Element1 + Fuselage1_ProfSupEl6 + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec52 + Beschreibung Rumpf_Sec52 + + + 0 + 0.952306 + 1.13526 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec52_Elem1 + Beschreibung Rumpf_Sec52_Element1 + Fuselage1_ProfSupEl7 + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec53 + Beschreibung Rumpf_Sec53 + + + 0 + 0.900402 + 1.05927 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec53_Elem1 + Beschreibung Rumpf_Sec53_Element1 + Fuselage1_ProfSupEl8 + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec54 + Beschreibung Rumpf_Sec54 + + + 0 + 0.824997 + 0.917107 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec54_Elem1 + Beschreibung Rumpf_Sec54_Element1 + Fuselage1_ProfSupEl9 + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec55 + Beschreibung Rumpf_Sec55 + + + 0 + 0.72601 + 0.719209 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec55_Elem1 + Beschreibung Rumpf_Sec55_Element1 + Fuselage1_ProfSupEl10 + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec56 + Beschreibung Rumpf_Sec56 + + + 0 + 0.687497 + 0.604089 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec56_Elem1 + Beschreibung Rumpf_Sec56_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec57 + Beschreibung Rumpf_Sec57 + + + 0 + 0.604982 + 0.483255 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec57_Elem1 + Beschreibung Rumpf_Sec57_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec58 + Beschreibung Rumpf_Sec58 + + + 0 + 0.527996 + 0.413313 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec58_Elem1 + Beschreibung Rumpf_Sec58_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec59 + Beschreibung Rumpf_Sec59 + + + 0 + 0.375013 + 0.351447 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec59_Elem1 + Beschreibung Rumpf_Sec59_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Name Rumpf_Sec60 + Beschreibung Rumpf_Sec60 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Name Rumpf_Sec60_Elem1 + Beschreibung Rumpf_Sec60_Element1 + Fuselage1_ProfCirc + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ + + pos1 + 0 + 0 + 0 + Fuselage1_Sec1 + + + + + pos2 + 0.0703113 + 75.3301 + -90 + Fuselage1_Sec1 + Fuselage1_Sec2 + + + pos3 + 0.102148 + 85.3727 + 90 + Fuselage1_Sec2 + Fuselage1_Sec3 + + + pos4 + 0.101547 + 87.5927 + 90 + Fuselage1_Sec3 + Fuselage1_Sec4 + + + pos5 + 0.128075 + 85.4937 + 90 + Fuselage1_Sec4 + Fuselage1_Sec5 + + + pos6 + 0.0595021 + 84.5289 + 90 + Fuselage1_Sec5 + Fuselage1_Sec6 + + + pos7 + 0.0850308 + 87.5438 + 90 + Fuselage1_Sec6 + Fuselage1_Sec7 + + + pos8 + 0.144573 + 85.795 + 90 + Fuselage1_Sec7 + Fuselage1_Sec8 + + + pos9 + 0.161343 + 86.9693 + 90 + Fuselage1_Sec8 + Fuselage1_Sec9 + + + pos10 + 0.187222 + 87.5661 + 90 + Fuselage1_Sec9 + Fuselage1_Sec10 + + + pos11 + 0.216534 + 85.6787 + 90 + Fuselage1_Sec10 + Fuselage1_Sec11 + + + pos12 + 0.163372 + 74.3691 + 90 + Fuselage1_Sec11 + Fuselage1_Sec12 + + + pos13 + 0.183811 + 75.7983 + 90 + Fuselage1_Sec12 + Fuselage1_Sec13 + + + pos14 + 0.217589 + 69.1523 + 90 + Fuselage1_Sec13 + Fuselage1_Sec14 + + + pos15 + 0.187972 + 71.4379 + 90 + Fuselage1_Sec14 + Fuselage1_Sec15 + + + pos16 + 0.212842 + 73.3465 + 90 + Fuselage1_Sec15 + Fuselage1_Sec16 + + + pos17 + 0.252618 + 76.9257 + 90 + Fuselage1_Sec16 + Fuselage1_Sec17 + + + pos18 + 0.33613 + 80.2115 + 90 + Fuselage1_Sec17 + Fuselage1_Sec18 + + + pos19 + 0.42695 + 83.4841 + 90 + Fuselage1_Sec18 + Fuselage1_Sec19 + + + pos20 + 0.485049 + 85.4118 + 90 + Fuselage1_Sec19 + Fuselage1_Sec20 + + + pos21 + 0.484517 + 86.2758 + 90 + Fuselage1_Sec20 + Fuselage1_Sec21 + + + pos22 + 0.543735 + 87.6998 + 90 + Fuselage1_Sec21 + Fuselage1_Sec22 + + + pos23 + 0.704686 + 88.4072 + 90 + Fuselage1_Sec22 + Fuselage1_Sec23 + + + pos24 + 0.57664 + 89.2635 + 90 + Fuselage1_Sec23 + Fuselage1_Sec24 + + + pos25 + 0.382198 + 89.4351 + 90 + Fuselage1_Sec24 + Fuselage1_Sec25 + + + pos26 + 0.415975 + 89.9943 + 90 + Fuselage1_Sec25 + Fuselage1_Sec26 + + + pos27 + 0.381543 + 89.6642 + -90 + Fuselage1_Sec26 + Fuselage1_Sec27 + + + pos28 + 3.20388 + 90 + 180 + Fuselage1_Sec27 + Fuselage1_Sec28 + + + pos29 + 3.20388 + 90 + 0 + Fuselage1_Sec28 + Fuselage1_Sec29 + + + pos30 + 3.20388 + 90 + 180 + Fuselage1_Sec29 + Fuselage1_Sec30 + + + pos31 + 3.20388 + 90 + 0 + Fuselage1_Sec30 + Fuselage1_Sec31 + + + pos32 + 3.20388 + 90 + 180 + Fuselage1_Sec31 + Fuselage1_Sec32 + + + pos33 + 0.852818 + 89.9972 + -90 + Fuselage1_Sec32 + Fuselage1_Sec33 + + + pos34 + 0.527396 + 89.8021 + 90 + Fuselage1_Sec33 + Fuselage1_Sec34 + + + pos35 + 0.528498 + 88.9045 + 90 + Fuselage1_Sec34 + Fuselage1_Sec35 + + + pos36 + 0.527508 + 88.2051 + 90 + Fuselage1_Sec35 + Fuselage1_Sec36 + + + pos37 + 0.527895 + 87.5003 + 90 + Fuselage1_Sec36 + Fuselage1_Sec37 + + + pos38 + 0.529187 + 86.8779 + 90 + Fuselage1_Sec37 + Fuselage1_Sec38 + + + pos39 + 0.528253 + 86.4675 + 90 + Fuselage1_Sec38 + Fuselage1_Sec39 + + + pos40 + 0.529634 + 86.0906 + 90 + Fuselage1_Sec39 + Fuselage1_Sec40 + + + pos41 + 0.528828 + 85.7788 + 90 + Fuselage1_Sec40 + Fuselage1_Sec41 + + + pos42 + 0.579642 + 85.4476 + 90 + Fuselage1_Sec41 + Fuselage1_Sec42 + + + pos43 + 0.67251 + 85.8297 + 90 + Fuselage1_Sec42 + Fuselage1_Sec43 + + + pos44 + 0.923502 + 84.4858 + 90 + Fuselage1_Sec43 + Fuselage1_Sec44 + + + pos45 + 0.473511 + 84.0063 + 90 + Fuselage1_Sec44 + Fuselage1_Sec45 + + + pos46 + 0.589533 + 84.4252 + 90 + Fuselage1_Sec45 + Fuselage1_Sec46 + + + pos47 + 0.3638 + 84.3233 + 90 + Fuselage1_Sec46 + Fuselage1_Sec47 + + + pos48 + 0.448528 + 84.2722 + 90 + Fuselage1_Sec47 + Fuselage1_Sec48 + + + pos49 + 0.397746 + 84.2219 + 90 + Fuselage1_Sec48 + Fuselage1_Sec49 + + + pos50 + 0.397927 + 84.1706 + 90 + Fuselage1_Sec49 + Fuselage1_Sec50 + + + pos51 + 0.410681 + 84.1548 + 90 + Fuselage1_Sec50 + Fuselage1_Sec51 + + + pos52 + 0.410841 + 84.1339 + 90 + Fuselage1_Sec51 + Fuselage1_Sec52 + + + pos53 + 0.411719 + 82.882 + 90 + Fuselage1_Sec52 + Fuselage1_Sec53 + + + pos54 + 0.750301 + 84.6894 + 90 + Fuselage1_Sec53 + Fuselage1_Sec54 + + + pos55 + 0.992391 + 85.539 + 90 + Fuselage1_Sec54 + Fuselage1_Sec55 + + + pos56 + 0.496535 + 85.0626 + 90 + Fuselage1_Sec55 + Fuselage1_Sec56 + + + pos57 + 0.497059 + 84.4063 + 90 + Fuselage1_Sec56 + Fuselage1_Sec57 + + + pos58 + 0.2483 + 84.9769 + 90 + Fuselage1_Sec57 + Fuselage1_Sec58 + + + pos59 + 0.306277 + 87.466 + 90 + Fuselage1_Sec58 + Fuselage1_Sec59 + + + pos60 + 0.0132708 + 3.11132 + 90 + Fuselage1_Sec59 + Fuselage1_Sec60 + + + + + Fuselage1_Seg1 + Fuselage1_Seg1 + Fuselage1_Sec1_Elem1 + Fuselage1_Sec2_Elem1 + + + Fuselage1_Seg2 + Fuselage1_Seg2 + Fuselage1_Sec2_Elem1 + Fuselage1_Sec3_Elem1 + + + Fuselage1_Seg3 + Fuselage1_Seg3 + Fuselage1_Sec3_Elem1 + Fuselage1_Sec4_Elem1 + + + Fuselage1_Seg4 + Fuselage1_Seg4 + Fuselage1_Sec4_Elem1 + Fuselage1_Sec5_Elem1 + + + Fuselage1_Seg5 + Fuselage1_Seg5 + Fuselage1_Sec5_Elem1 + Fuselage1_Sec6_Elem1 + + + Fuselage1_Seg6 + Fuselage1_Seg6 + Fuselage1_Sec6_Elem1 + Fuselage1_Sec7_Elem1 + + + Fuselage1_Seg7 + Fuselage1_Seg7 + Fuselage1_Sec7_Elem1 + Fuselage1_Sec8_Elem1 + + + Fuselage1_Seg8 + Fuselage1_Seg8 + Fuselage1_Sec8_Elem1 + Fuselage1_Sec9_Elem1 + + + Fuselage1_Seg9 + Fuselage1_Seg9 + Fuselage1_Sec9_Elem1 + Fuselage1_Sec10_Elem1 + + + Fuselage1_Seg10 + Fuselage1_Seg10 + Fuselage1_Sec10_Elem1 + Fuselage1_Sec11_Elem1 + + + Fuselage1_Seg11 + Fuselage1_Seg11 + Fuselage1_Sec11_Elem1 + Fuselage1_Sec12_Elem1 + + + Fuselage1_Seg12 + Fuselage1_Seg12 + Fuselage1_Sec12_Elem1 + Fuselage1_Sec13_Elem1 + + + Fuselage1_Seg13 + Fuselage1_Seg13 + Fuselage1_Sec13_Elem1 + Fuselage1_Sec14_Elem1 + + + Fuselage1_Seg14 + Fuselage1_Seg14 + Fuselage1_Sec14_Elem1 + Fuselage1_Sec15_Elem1 + + + Fuselage1_Seg15 + Fuselage1_Seg15 + Fuselage1_Sec15_Elem1 + Fuselage1_Sec16_Elem1 + + + Fuselage1_Seg16 + Fuselage1_Seg16 + Fuselage1_Sec16_Elem1 + Fuselage1_Sec17_Elem1 + + + Fuselage1_Seg17 + Fuselage1_Seg17 + Fuselage1_Sec17_Elem1 + Fuselage1_Sec18_Elem1 + + + Fuselage1_Seg18 + Fuselage1_Seg18 + Fuselage1_Sec18_Elem1 + Fuselage1_Sec19_Elem1 + + + Fuselage1_Seg19 + Fuselage1_Seg19 + Fuselage1_Sec19_Elem1 + Fuselage1_Sec20_Elem1 + + + Fuselage1_Seg20 + Fuselage1_Seg20 + Fuselage1_Sec20_Elem1 + Fuselage1_Sec21_Elem1 + + + Fuselage1_Seg21 + Fuselage1_Seg21 + Fuselage1_Sec21_Elem1 + Fuselage1_Sec22_Elem1 + + + Fuselage1_Seg22 + Fuselage1_Seg22 + Fuselage1_Sec22_Elem1 + Fuselage1_Sec23_Elem1 + + + Fuselage1_Seg23 + Fuselage1_Seg23 + Fuselage1_Sec23_Elem1 + Fuselage1_Sec24_Elem1 + + + Fuselage1_Seg24 + Fuselage1_Seg24 + Fuselage1_Sec24_Elem1 + Fuselage1_Sec25_Elem1 + + + Fuselage1_Seg25 + Fuselage1_Seg25 + Fuselage1_Sec25_Elem1 + Fuselage1_Sec26_Elem1 + + + Fuselage1_Seg26 + Fuselage1_Seg26 + Fuselage1_Sec26_Elem1 + Fuselage1_Sec27_Elem1 + + + Fuselage1_Seg27 + Fuselage1_Seg27 + Fuselage1_Sec27_Elem1 + Fuselage1_Sec28_Elem1 + + + Fuselage1_Seg28 + Fuselage1_Seg28 + Fuselage1_Sec28_Elem1 + Fuselage1_Sec29_Elem1 + + + Fuselage1_Seg29 + Fuselage1_Seg29 + Fuselage1_Sec29_Elem1 + Fuselage1_Sec30_Elem1 + + + Fuselage1_Seg30 + Fuselage1_Seg30 + Fuselage1_Sec30_Elem1 + Fuselage1_Sec31_Elem1 + + + Fuselage1_Seg31 + Fuselage1_Seg31 + Fuselage1_Sec31_Elem1 + Fuselage1_Sec32_Elem1 + + + Fuselage1_Seg32 + Fuselage1_Seg32 + Fuselage1_Sec32_Elem1 + Fuselage1_Sec33_Elem1 + + + Fuselage1_Seg33 + Fuselage1_Seg33 + Fuselage1_Sec33_Elem1 + Fuselage1_Sec34_Elem1 + + + Fuselage1_Seg34 + Fuselage1_Seg34 + Fuselage1_Sec34_Elem1 + Fuselage1_Sec35_Elem1 + + + Fuselage1_Seg35 + Fuselage1_Seg35 + Fuselage1_Sec35_Elem1 + Fuselage1_Sec36_Elem1 + + + Fuselage1_Seg36 + Fuselage1_Seg36 + Fuselage1_Sec36_Elem1 + Fuselage1_Sec37_Elem1 + + + Fuselage1_Seg37 + Fuselage1_Seg37 + Fuselage1_Sec37_Elem1 + Fuselage1_Sec38_Elem1 + + + Fuselage1_Seg38 + Fuselage1_Seg38 + Fuselage1_Sec38_Elem1 + Fuselage1_Sec39_Elem1 + + + Fuselage1_Seg39 + Fuselage1_Seg39 + Fuselage1_Sec39_Elem1 + Fuselage1_Sec40_Elem1 + + + Fuselage1_Seg40 + Fuselage1_Seg40 + Fuselage1_Sec40_Elem1 + Fuselage1_Sec41_Elem1 + + + Fuselage1_Seg41 + Fuselage1_Seg41 + Fuselage1_Sec41_Elem1 + Fuselage1_Sec42_Elem1 + + + Fuselage1_Seg42 + Fuselage1_Seg42 + Fuselage1_Sec42_Elem1 + Fuselage1_Sec43_Elem1 + + + Fuselage1_Seg43 + Fuselage1_Seg43 + Fuselage1_Sec43_Elem1 + Fuselage1_Sec44_Elem1 + + + Fuselage1_Seg44 + Fuselage1_Seg44 + Fuselage1_Sec44_Elem1 + Fuselage1_Sec45_Elem1 + + + Fuselage1_Seg45 + Fuselage1_Seg45 + Fuselage1_Sec45_Elem1 + Fuselage1_Sec46_Elem1 + + + Fuselage1_Seg46 + Fuselage1_Seg46 + Fuselage1_Sec46_Elem1 + Fuselage1_Sec47_Elem1 + + + Fuselage1_Seg47 + Fuselage1_Seg47 + Fuselage1_Sec47_Elem1 + Fuselage1_Sec48_Elem1 + + + Fuselage1_Seg48 + Fuselage1_Seg48 + Fuselage1_Sec48_Elem1 + Fuselage1_Sec49_Elem1 + + + Fuselage1_Seg49 + Fuselage1_Seg49 + Fuselage1_Sec49_Elem1 + Fuselage1_Sec50_Elem1 + + + Fuselage1_Seg50 + Fuselage1_Seg50 + Fuselage1_Sec50_Elem1 + Fuselage1_Sec51_Elem1 + + + Fuselage1_Seg51 + Fuselage1_Seg51 + Fuselage1_Sec51_Elem1 + Fuselage1_Sec52_Elem1 + + + Fuselage1_Seg52 + Fuselage1_Seg52 + Fuselage1_Sec52_Elem1 + Fuselage1_Sec53_Elem1 + + + Fuselage1_Seg53 + Fuselage1_Seg53 + Fuselage1_Sec53_Elem1 + Fuselage1_Sec54_Elem1 + + + Fuselage1_Seg54 + Fuselage1_Seg54 + Fuselage1_Sec54_Elem1 + Fuselage1_Sec55_Elem1 + + + Fuselage1_Seg55 + Fuselage1_Seg55 + Fuselage1_Sec55_Elem1 + Fuselage1_Sec56_Elem1 + + + Fuselage1_Seg56 + Fuselage1_Seg56 + Fuselage1_Sec56_Elem1 + Fuselage1_Sec57_Elem1 + + + Fuselage1_Seg57 + Fuselage1_Seg57 + Fuselage1_Sec57_Elem1 + Fuselage1_Sec58_Elem1 + + + Fuselage1_Seg58 + Fuselage1_Seg58 + Fuselage1_Sec58_Elem1 + Fuselage1_Sec59_Elem1 + + + Fuselage1_Seg59 + Fuselage1_Seg59 + Fuselage1_Sec59_Elem1 + Fuselage1_Sec60_Elem1 + + +
+
+ + + D150_wing_1 + Wing + Fuselage1 + + + 1 + 1 + 1 + + + 0 + 2 + 0 + + + 12.7456 + 0 + -1.13628 + + + +
+ Wing_Sec1 + Wing_Sec1 + + + 6.07572 + 1 + 6.06092 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Wing_Sec1_Elem1 + Wing_Sec1_Element1 + D150_VAMP_W_SupCritProf1 + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Wing_Sec2 + Wing_Sec2 + + + 6.07572 + 1 + 6.06092 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Wing_Sec2_Elem1 + Wing_Sec2_Element1 + D150_VAMP_W_SupCritProf1 + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Wing_Sec3 + Wing_Sec3 + + + 3.75844 + 1 + 2.90786 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Wing_Sec3_Elem1 + Wing_Sec3_Element1 + D150_VAMP_W_SupCritProf1 + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Wing_Sec4 + Wing_Sec4 + + + 1.49584 + 1 + 1.06768 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Wing_Sec4_Elem1 + Wing_Sec4_Element1 + D150_VAMP_W_SupCritProf1 + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ + + p1 + 0 + 0 + 0 + Wing1_Sec1 + + + + + p2 + 1.85623 + 0 + 0 + Wing1_Sec1 + Wing1_Sec2 + + + p3 + 5.05868 + 27.3288 + 5 + Wing1_Sec2 + Wing1_Sec3 + + + p4 + 12.0035 + 27.3288 + 5 + Wing1_Sec3 + Wing1_Sec4 + + + + + Wing1_Seg1 + Wing1_Seg1 + Wing1_Sec1_Elem1 + Wing1_Sec2_Elem1 + + + Wing1_Seg2 + Wing1_Seg2 + Wing1_Sec2_Elem1 + Wing1_Sec3_Elem1 + + + Wing1_Seg3 + Wing1_Seg3 + Wing1_Sec3_Elem1 + Wing1_Sec4_Elem1 + + + + + Wing1_CompSeg1 + Wing1_CompSeg1 + Wing1_Sec1_Elem1 + Wing1_Sec4_Elem1 + + + + InnerFlap + Inner flap of the D150 + Wing1_CompSeg1 + + + + 0.1103 + InnerFlap + + + 0.1103 + InnerFlap + + + 0.812922 + InnerFlap + + + + + 0.325678 + InnerFlap + + + 0.325678 + InnerFlap + + + 0.7195 + InnerFlap + + + + + + 0.812922 + 0.5 + + + 0.7195 + 0.5 + + + + 0 + + 0 + 0 + 0 + + + 0 + 0 + + 0 + + + 1 + + 0 + 0 + 0 + + + 0 + 0 + + 35 + + + + + + OuterFlap + Outer flap of the D150 + Wing1_CompSeg1 + + + + 0.325678 + OuterFlap + + + 0.325678 + OuterFlap + + + 0.7195 + OuterFlap + + + + + 0.758902 + OuterFlap + + + 0.758902 + OuterFlap + + + 0.705129 + OuterFlap + + + + + + 0.7195 + 0.5 + + + 0.705129 + 0.5 + + + + 0 + + 0 + 0 + 0 + + + 0 + 0 + + 0 + + + 1 + + 0 + 0 + 0 + + + 0 + 0 + + 35 + + + + + + Aileron + All speed aileron of the D150 + Wing1_CompSeg1 + + + + 0.770741 + Aileron + + + 0.770741 + Aileron + + + 0.702209 + Aileron + + + + + 0.956947 + Aileron + + + 0.956947 + Aileron + + + 0.712 + Aileron + + + + + + 0.702209 + 0.5 + + + 0.712 + 0.5 + + + + -1 + + 0 + 0 + 0 + + + 0 + 0 + + -25 + + + 0 + + 0 + 0 + 0 + + + 0 + 0 + + 0 + + + 1 + + 0 + 0 + 0 + + + 0 + 0 + + 25 + + + + + + + + Wing1_CompSeg1_Spoiler4 + Wing1_CompSeg1 + + + + 0.192608 + Wing1_CompSeg1 + + + 0.192608 + Wing1_CompSeg1 + + + 0.762 + Wing1_CompSeg1 + + + 0.884364 + Wing1_CompSeg1 + + + + + 0.31757 + Wing1_CompSeg1 + + + 0.31757 + Wing1_CompSeg1 + + + 0.67 + Wing1_CompSeg1 + + + 0.829068 + Wing1_CompSeg1 + + + + + + 0.762 + 0.5 + + + 0.67 + 0.5 + + + + 0 + + 0.0 + 0.0 + 0.0 + + + 0.0 + 0.0 + + 0 + + + 1 + + 0.0 + 0.0 + 0.0 + + + 0.0 + 0.0 + + -50.0 + + + + + + Wing1_CompSeg1_Spoiler5 + Wing1_CompSeg1 + + + + 0.358506 + Wing1_CompSeg1 + + + 0.34311 + Wing1_CompSeg1 + + + 0.666 + Wing1_CompSeg1 + + + 0.881763 + Wing1_CompSeg1 + + + + + 0.459789 + Wing1_CompSeg1 + + + 0.444392 + Wing1_CompSeg1 + + + 0.658 + Wing1_CompSeg1 + + + 0.895708 + Wing1_CompSeg1 + + + + + + 0.666 + 0.5 + + + 0.658 + 0.5 + + + + 0 + + 0.0 + 0.0 + 0.0 + + + 0.0 + 0.0 + + 0 + + + 1 + + 0.0 + 0.0 + 0.0 + + + 0.0 + 0.0 + + -35.0 + + + + + + Wing1_CompSeg1_Spoiler6 + Wing1_CompSeg1 + + + + 0.459789 + Wing1_CompSeg1 + + + 0.444402 + Wing1_CompSeg1 + + + 0.658 + Wing1_CompSeg1 + + + 0.895559 + Wing1_CompSeg1 + + + + + 0.560964 + Wing1_CompSeg1 + + + 0.545577 + Wing1_CompSeg1 + + + 0.646 + Wing1_CompSeg1 + + + 0.910463 + Wing1_CompSeg1 + + + + + + 0.658 + 0.5 + + + 0.646 + 0.5 + + + + 0 + + 0.0 + 0.0 + 0.0 + + + 0.0 + 0.0 + + 0 + + + 1 + + 0.0 + 0.0 + 0.0 + + + 0.0 + 0.0 + + -30.0 + + + + + + Wing1_CompSeg1_Spoiler7 + Wing1_CompSeg1 + + + + 0.564086 + Wing1_CompSeg1 + + + 0.548672 + Wing1_CompSeg1 + + + 0.649 + Wing1_CompSeg1 + + + 0.914793 + Wing1_CompSeg1 + + + + + 0.654497 + Wing1_CompSeg1 + + + 0.639083 + Wing1_CompSeg1 + + + 0.642 + Wing1_CompSeg1 + + + 0.937715 + Wing1_CompSeg1 + + + + + + 0.649 + 0.5 + + + 0.642 + 0.5 + + + + 0 + + 0.0 + 0.0 + 0.0 + + + 0.0 + 0.0 + + 0 + + + 1 + + 0.0 + 0.0 + 0.0 + + + 0.0 + 0.0 + + -35.0 + + + + + + Wing1_CompSeg1_Spoiler8 + Wing1_CompSeg1 + + + + 0.654497 + Wing1_CompSeg1 + + + 0.63909 + Wing1_CompSeg1 + + + 0.642 + Wing1_CompSeg1 + + + 0.937597 + Wing1_CompSeg1 + + + + + 0.745986 + Wing1_CompSeg1 + + + 0.730578 + Wing1_CompSeg1 + + + 0.6315 + Wing1_CompSeg1 + + + 0.965134 + Wing1_CompSeg1 + + + + + + 0.642 + 0.5 + + + 0.6315 + 0.5 + + + + 0 + + 0.0 + 0.0 + 0.0 + + + 0.0 + 0.0 + + 0 + + + 1 + + 0.0 + 0.0 + 0.0 + + + 0.0 + 0.0 + + -30.0 + + + + + + + + + toComponentSegmentUID + + fromElementUID + toElementUID + + + + fromSparUID + toSparUID + + + upperShellAttachment + lowerShellAttachment + + + + +
+ + Hoehenleitwerk + Hoehenleitwerk + Fuselage1 + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 31.4657 + 0 + 0.697137 + + + +
+ Hoehenleitwerk_Sec1 + Hoehenleitwerk_Sec1 + + + 3.74433 + 1 + 3.74283 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Hoehenleitwerk_Sec1_Elem1 + Hoehenleitwerk_Sec1_Element1 + D150_VAMP_HL_NACA0000Prof1 + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Hoehenleitwerk_Sec2 + Hoehenleitwerk_Sec2 + + + 1.23563 + 1 + 1.23514 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Hoehenleitwerk_Sec2_Elem1 + Hoehenleitwerk_Sec2_Element1 + D150_VAMP_HL_NACA0000Prof1 + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ + + w2p1 + 0 + 0 + 0 + Wing2H_Sec1 + + + + + w2p2 + 7.38558 + 32.2131 + 5 + Wing2H_Sec1 + Wing2H_Sec2 + + + + + Wing2H_Seg1 + Wing2H_Seg1 + Wing2H_Sec1_Elem1 + Wing2H_Sec2_Elem1 + + + + + Wing2H_CompSeg1 + Wing2H_CompSeg1 + Wing2H_Sec1_Elem1 + Wing2H_Sec2_Elem1 + + + + Elevator + Elevator of D150 + Wing2H_CompSeg1 + + + + 0.16 + Elevator + + + 0.169255 + Elevator + + + 0.577506 + Elevator + + + + + 0.95 + Elevator + + + 0.95 + Elevator + + + 0.64 + Elevator + + + + + + 0.577506 + 0.5 + + + 0.64 + 0.5 + + + + -1 + + 0 + 0 + 0 + + + 0 + 0 + + -15 + + + 0 + + 0 + 0 + 0 + + + 0 + 0 + + 0 + + + 1 + + 0 + 0 + 0 + + + 0 + 0 + + 30 + + + + + + + + +
+ + Seitenleitwerk + Seitenleitwerk + Fuselage1 + + + 1 + 1 + 1 + + + 90 + 0 + -2.2 + + + 29.838 + -0.00200292 + 1.89101 + + + +
+ Seitenleitwerk_Sec1 + Seitenleitwerk_Sec1 + + + 5.43472 + 1 + 5.9758 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Seitenleitwerk_Sec1_Elem1 + Seitenleitwerk_Sec1_Element1 + D150_VAMP_SL_NACA0000Prof1 + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ Seitenleitwerk_Sec2 + Seitenleitwerk_Sec2 + + + 1.89672 + 1 + 2.08556 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + Seitenleitwerk_Sec2_Elem1 + Seitenleitwerk_Sec2_Element1 + D150_VAMP_SL_NACA0000Prof1 + + + 1 + 1 + 1 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + +
+
+ + + + 0 + 0 + 0 + Wing3V_Sec1 + + + + + + 7.70151 + 40.3982 + 0 + Wing3V_Sec1 + Wing3V_Sec2 + + + + + Wing3V_Seg1 + Wing3V_Seg1 + Wing3V_Sec1_Elem1 + Wing3V_Sec2_Elem1 + + + + + Wing3V_CompSeg1 + Wing3V_CompSeg1 + Wing3V_Sec1_Elem1 + Wing3V_Sec2_Elem1 + + + + Rudder + Rudder of D150 + Wing3V_CompSeg1 + + + + 0.01 + Rudder + + + 0.01 + Rudder + + + 0.6875 + Rudder + + + + + 0.95 + Rudder + + + 0.95 + Rudder + + + 0.714 + Rudder + + + + + + 0.6875 + 0.5 + + + 0.714 + 0.5 + + + + -1 + + 0 + 0 + 0 + + + 0 + 0 + + -30 + + + 0 + + 0 + 0 + 0 + + + 0 + 0 + + 0 + + + 1 + + 0 + 0 + 0 + + + 0 + 0 + + 30 + + + + + + + + +
+
+ + 150 + 5674.0 + 0.78 + + + + + + 78126 + + 16.3 + + + + 54038 + + + 57593 + + + + + + + + aeromap_empty + Common default aeroMap + + ISA + + + 0.0 + 0.3 + 0.0 + 0.0 + + + + test_apm + Aeromap for tests + + ISA + + + 0;0;0;0 + 0.3;0.3;0.3;0.3 + 0;10;0;10 + 0;0;10;10 + 0.1;0.1;0.1;0.1 + 0.01;0.01;0.01;0.01 + 0.001;0.001;0.001;0.001 + + + + +
+
+ + + + Circle + Profile build up from set of Points on Circle where max Dimensions are 1..-1 + + 0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0 + 0;0.0774924;0.154519;0.230616;0.305326;0.3782;0.448799;0.516699;0.581492;0.642788;0.700217;0.753436;0.802123;0.845986;0.884762;0.918216;0.946148;0.96839;0.984808;0.995303;0.999812;0.998308;0.9908;0.977334;0.95799;0.932884;0.902167;0.866025;0.824675;0.778365;0.727374;0.672008;0.612601;0.549509;0.483113;0.413811;0.34202;0.268173;0.192712;0.116093;0.0387754;-0.0387754;-0.116093;-0.192712;-0.268173;-0.34202;-0.413811;-0.483113;-0.549509;-0.612601;-0.672008;-0.727374;-0.778365;-0.824675;-0.866025;-0.902167;-0.932884;-0.95799;-0.977334;-0.9908;-0.998308;-0.999812;-0.995303;-0.984808;-0.96839;-0.946148;-0.918216;-0.884762;-0.845986;-0.802123;-0.753436;-0.700217;-0.642788;-0.581492;-0.516699;-0.448799;-0.3782;-0.305326;-0.230616;-0.154519;-0.0774924;0 + 1;0.996993;0.98799;0.973045;0.952248;0.925724;0.893633;0.856167;0.813552;0.766044;0.71393;0.657521;0.597159;0.533204;0.466044;0.39608;0.323734;0.249441;0.173648;0.0968109;0.0193913;-0.0581448;-0.135331;-0.211704;-0.286803;-0.360178;-0.431386;-0.5;-0.565607;-0.627812;-0.686242;-0.740544;-0.790393;-0.835488;-0.875558;-0.910363;-0.939693;-0.963371;-0.981255;-0.993238;-0.999248;-0.999248;-0.993238;-0.981255;-0.963371;-0.939693;-0.910363;-0.875558;-0.835488;-0.790393;-0.740544;-0.686242;-0.627812;-0.565607;-0.5;-0.431386;-0.360178;-0.286803;-0.211704;-0.135331;-0.0581448;0.0193913;0.0968109;0.173648;0.249441;0.323734;0.39608;0.466044;0.533204;0.597159;0.657521;0.71393;0.766044;0.813552;0.856167;0.893633;0.925724;0.952248;0.973045;0.98799;0.996993;1 + + + + SuperEllipse + Normalized SuperEllipse with Ratio + + 0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0 + 0;0.000976562;0.078125;0.15625;0.234375;0.308594;0.382812;0.457031;0.525391;0.591797;0.654297;0.712891;0.767578;0.816406;0.861328;0.900391;0.933594;0.958984;0.979492;0.992676;0.999268;0.999999;0.996826;0.987793;0.972656;0.951172;0.923828;0.890625;0.853516;0.808594;0.759766;0.707031;0.648438;0.587891;0.523438;0.453125;0.382812;0.308594;0.234375;0.15625;0.078125;-0.078125;-0.15625;-0.234375;-0.308594;-0.382812;-0.453125;-0.523438;-0.587891;-0.648438;-0.707031;-0.759766;-0.808594;-0.853516;-0.890625;-0.923828;-0.951172;-0.972656;-0.987793;-0.996826;-0.999999;-0.999268;-0.992676;-0.979492;-0.958984;-0.933594;-0.900391;-0.861328;-0.816406;-0.767578;-0.712891;-0.654297;-0.591797;-0.525391;-0.457031;-0.382812;-0.308594;-0.234375;-0.15625;-0.078125;-0.000976562;-0 + 1;1;0.99707;0.988226;0.9733;0.953215;0.92698;0.894028;0.857037;0.814117;0.766332;0.713645;0.655823;0.594975;0.528421;0.458476;0.384905;0.313131;0.234549;0.157216;0.0780917;-0.00138107;-0.0796089;-0.155772;-0.232249;-0.308662;-0.382808;-0.454739;-0.521067;-0.588367;-0.650197;-0.707182;-0.761268;-0.80894;-0.852064;-0.891447;-0.923826;-0.951194;-0.972146;-0.987718;-0.996944;-0.996944;-0.987718;-0.972146;-0.951194;-0.923826;-0.891447;-0.852064;-0.80894;-0.761268;-0.707182;-0.650197;-0.588367;-0.521067;-0.454739;-0.382808;-0.308662;-0.232249;-0.155772;-0.0796089;-0.00138107;0.0780917;0.157216;0.234549;0.313131;0.384905;0.458476;0.528421;0.594975;0.655823;0.713645;0.766332;0.814117;0.857037;0.894028;0.92698;0.953215;0.9733;0.988226;0.99707;1;1 + + + + SuperEllipse + Normalized SuperEllipse with Ratio + + 0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0 + 0;0.000976562;0.078125;0.15625;0.234375;0.314453;0.394531;0.472656;0.550781;0.625;0.699219;0.771484;0.837891;0.896484;0.945312;0.979492;0.998047;1;1;1;1;0.999999;0.996826;0.987793;0.972656;0.951172;0.923828;0.890625;0.853516;0.808594;0.759766;0.707031;0.648438;0.587891;0.523438;0.453125;0.382812;0.308594;0.234375;0.15625;0.078125;-0.078125;-0.15625;-0.234375;-0.308594;-0.382812;-0.453125;-0.523438;-0.587891;-0.648438;-0.707031;-0.759766;-0.808594;-0.853516;-0.890625;-0.923828;-0.951172;-0.972656;-0.987793;-0.996826;-0.999999;-1;-1;-1;-1;-0.998047;-0.979492;-0.945312;-0.896484;-0.837891;-0.771484;-0.699219;-0.625;-0.550781;-0.472656;-0.394531;-0.314453;-0.234375;-0.15625;-0.078125;-0.000976562;-0 + 1;1;0.998083;0.992295;0.982527;0.968178;0.949114;0.925505;0.896274;0.862384;0.821159;0.771815;0.7151;0.650636;0.577297;0.499082;0.411878;0.324219;0.238281;0.160156;0.078125;-0.00138107;-0.0796089;-0.155772;-0.232249;-0.308662;-0.382808;-0.454739;-0.521067;-0.588367;-0.650197;-0.707182;-0.761268;-0.80894;-0.852064;-0.891447;-0.923826;-0.951194;-0.972146;-0.987718;-0.996944;-0.996944;-0.987718;-0.972146;-0.951194;-0.923826;-0.891447;-0.852064;-0.80894;-0.761268;-0.707182;-0.650197;-0.588367;-0.521067;-0.454739;-0.382808;-0.308662;-0.232249;-0.155772;-0.0796089;-0.00138107;0.078125;0.160156;0.238281;0.324219;0.411878;0.499082;0.577297;0.650636;0.7151;0.771815;0.821159;0.862384;0.896274;0.925505;0.949114;0.968178;0.982527;0.992295;0.998083;1;1 + + + + SuperEllipse + Normalized SuperEllipse with Ratio + + 0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0 + 0;0.000976562;0.078125;0.15625;0.238281;0.316406;0.398438;0.480469;0.5625;0.648438;0.730469;0.808594;0.882812;0.945312;0.989258;1;1;1;1;1;1;1;1;0.996582;0.98584;0.967773;0.942383;0.910156;0.871094;0.826172;0.775391;0.71875;0.660156;0.595703;0.527344;0.457031;0.384766;0.308594;0.234375;0.15625;0.078125;-0.078125;-0.15625;-0.234375;-0.308594;-0.384766;-0.457031;-0.527344;-0.595703;-0.660156;-0.71875;-0.775391;-0.826172;-0.871094;-0.910156;-0.942383;-0.967773;-0.98584;-0.996582;-1;-1;-1;-1;-1;-1;-1;-1;-0.989258;-0.945312;-0.882812;-0.808594;-0.730469;-0.648438;-0.5625;-0.480469;-0.398438;-0.316406;-0.238281;-0.15625;-0.078125;-0.000976562;-0 + 1;1;0.998589;0.99433;0.986702;0.976281;0.961772;0.94322;0.920038;0.889785;0.853626;0.809962;0.755188;0.688911;0.605818;0.507812;0.414062;0.324219;0.238281;0.160156;0.078125;0;-0.078125;-0.158587;-0.236622;-0.313787;-0.38965;-0.462776;-0.533262;-0.599576;-0.662003;-0.720506;-0.77174;-0.819503;-0.862104;-0.898606;-0.92939;-0.955236;-0.974453;-0.988735;-0.997197;-0.997197;-0.988735;-0.974453;-0.955236;-0.92939;-0.898606;-0.862104;-0.819503;-0.77174;-0.720506;-0.662003;-0.599576;-0.533262;-0.462776;-0.38965;-0.313787;-0.236622;-0.158587;-0.078125;0;0.078125;0.160156;0.238281;0.324219;0.414062;0.507812;0.605818;0.688911;0.755188;0.809962;0.853626;0.889785;0.920038;0.94322;0.961772;0.976281;0.986702;0.99433;0.998589;1;1 + + + + SuperEllipse + Normalized SuperEllipse with Ratio + + 0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0 + 0;0.000976562;0.078125;0.15625;0.238281;0.316406;0.398438;0.484375;0.566406;0.652344;0.738281;0.820312;0.896484;0.960938;0.99707;1;1;1;1;1;1;1;1;1;0.996094;0.98291;0.960938;0.929688;0.890625;0.84375;0.791016;0.734375;0.669922;0.603516;0.535156;0.460938;0.386719;0.3125;0.234375;0.15625;0.078125;-0.078125;-0.15625;-0.234375;-0.3125;-0.386719;-0.460938;-0.535156;-0.603516;-0.669922;-0.734375;-0.791016;-0.84375;-0.890625;-0.929688;-0.960938;-0.98291;-0.996094;-1;-1;-1;-1;-1;-1;-1;-1;-1;-0.99707;-0.960938;-0.896484;-0.820312;-0.738281;-0.652344;-0.566406;-0.484375;-0.398438;-0.316406;-0.238281;-0.15625;-0.078125;-0.000976562;-0 + 1;1;0.998716;0.994838;0.987895;0.978409;0.965201;0.947409;0.926087;0.898265;0.863202;0.820093;0.765947;0.696053;0.611886;0.507812;0.414062;0.324219;0.238281;0.160156;0.078125;0;-0.078125;-0.160156;-0.239316;-0.319234;-0.396562;-0.472976;-0.545056;-0.613471;-0.676098;-0.731957;-0.785095;-0.830918;-0.870468;-0.906078;-0.935085;-0.958213;-0.97676;-0.989752;-0.99745;-0.99745;-0.989752;-0.97676;-0.958213;-0.935085;-0.906078;-0.870468;-0.830918;-0.785095;-0.731957;-0.676098;-0.613471;-0.545056;-0.472976;-0.396562;-0.319234;-0.239316;-0.160156;-0.078125;0;0.078125;0.160156;0.238281;0.324219;0.414062;0.507812;0.611886;0.696053;0.765947;0.820093;0.863202;0.898265;0.926087;0.947409;0.965201;0.978409;0.987895;0.994838;0.998716;1;1 + + + + SuperEllipse + Normalized SuperEllipse with Ratio + + 0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0 + 0;0.000976562;0.078125;0.15625;0.238281;0.316406;0.398438;0.484375;0.566406;0.652344;0.738281;0.820312;0.896484;0.960938;0.99707;1;1;1;1;1;1;1;1;1;0.999146;0.989258;0.969727;0.939453;0.900391;0.853516;0.800781;0.740234;0.675781;0.609375;0.537109;0.464844;0.388672;0.3125;0.234375;0.15625;0.078125;-0.078125;-0.15625;-0.234375;-0.3125;-0.388672;-0.464844;-0.537109;-0.609375;-0.675781;-0.740234;-0.800781;-0.853516;-0.900391;-0.939453;-0.969727;-0.989258;-0.999146;-1;-1;-1;-1;-1;-1;-1;-1;-1;-0.99707;-0.960938;-0.896484;-0.820312;-0.738281;-0.652344;-0.566406;-0.484375;-0.398438;-0.316406;-0.238281;-0.15625;-0.078125;-0.000976562;-0 + 1;1;0.998716;0.994838;0.987895;0.978409;0.965201;0.947409;0.926087;0.898265;0.863202;0.820093;0.765947;0.696053;0.611886;0.507812;0.414062;0.324219;0.238281;0.160156;0.078125;0;-0.078125;-0.160156;-0.239823;-0.322964;-0.400683;-0.478776;-0.552049;-0.62023;-0.681993;-0.740189;-0.791535;-0.835766;-0.875913;-0.909122;-0.937655;-0.960287;-0.977913;-0.990261;-0.997576;-0.997576;-0.990261;-0.977913;-0.960287;-0.937655;-0.909122;-0.875913;-0.835766;-0.791535;-0.740189;-0.681993;-0.62023;-0.552049;-0.478776;-0.400683;-0.322964;-0.239823;-0.160156;-0.078125;0;0.078125;0.160156;0.238281;0.324219;0.414062;0.507812;0.611886;0.696053;0.765947;0.820093;0.863202;0.898265;0.926087;0.947409;0.965201;0.978409;0.987895;0.994838;0.998716;1;1 + + + + SuperEllipse + Normalized SuperEllipse with Ratio + + 0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0 + 0;0.000976562;0.078125;0.15625;0.238281;0.316406;0.398438;0.480469;0.566406;0.648438;0.734375;0.816406;0.890625;0.953125;0.993164;1;1;1;1;1;1;1;1;1;0.999146;0.989258;0.969727;0.939453;0.900391;0.853516;0.800781;0.740234;0.675781;0.609375;0.537109;0.464844;0.388672;0.3125;0.234375;0.15625;0.078125;-0.078125;-0.15625;-0.234375;-0.3125;-0.388672;-0.464844;-0.537109;-0.609375;-0.675781;-0.740234;-0.800781;-0.853516;-0.900391;-0.939453;-0.969727;-0.989258;-0.999146;-1;-1;-1;-1;-1;-1;-1;-1;-1;-0.993164;-0.953125;-0.890625;-0.816406;-0.734375;-0.648438;-0.566406;-0.480469;-0.398438;-0.316406;-0.238281;-0.15625;-0.078125;-0.000976562;-0 + 1;1;0.998652;0.994584;0.987299;0.977345;0.963486;0.945767;0.922446;0.894727;0.858337;0.813683;0.759559;0.692461;0.610507;0.507812;0.414062;0.324219;0.238281;0.160156;0.078125;0;-0.078125;-0.160156;-0.239823;-0.322964;-0.400683;-0.478776;-0.552049;-0.62023;-0.681993;-0.740189;-0.791535;-0.835766;-0.875913;-0.909122;-0.937655;-0.960287;-0.977913;-0.990261;-0.997576;-0.997576;-0.990261;-0.977913;-0.960287;-0.937655;-0.909122;-0.875913;-0.835766;-0.791535;-0.740189;-0.681993;-0.62023;-0.552049;-0.478776;-0.400683;-0.322964;-0.239823;-0.160156;-0.078125;0;0.078125;0.160156;0.238281;0.324219;0.414062;0.507812;0.610507;0.692461;0.759559;0.813683;0.858337;0.894727;0.922446;0.945767;0.963486;0.977345;0.987299;0.994584;0.998652;1;1 + + + + SuperEllipse + Normalized SuperEllipse with Ratio + + 0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0 + 0;0.000976562;0.078125;0.15625;0.238281;0.316406;0.398438;0.476562;0.558594;0.640625;0.722656;0.800781;0.871094;0.933594;0.978516;0.999756;1;1;1;1;1;1;1;1;0.999146;0.989258;0.969727;0.939453;0.900391;0.853516;0.800781;0.740234;0.675781;0.609375;0.537109;0.464844;0.388672;0.3125;0.234375;0.15625;0.078125;-0.078125;-0.15625;-0.234375;-0.3125;-0.388672;-0.464844;-0.537109;-0.609375;-0.675781;-0.740234;-0.800781;-0.853516;-0.900391;-0.939453;-0.969727;-0.989258;-0.999146;-1;-1;-1;-1;-1;-1;-1;-1;-0.999756;-0.978516;-0.933594;-0.871094;-0.800781;-0.722656;-0.640625;-0.558594;-0.476562;-0.398438;-0.316406;-0.238281;-0.15625;-0.078125;-0.000976562;-0 + 1;1;0.998462;0.993821;0.985509;0.974154;0.958343;0.939198;0.914195;0.883212;0.844653;0.798243;0.743991;0.67719;0.600641;0.508036;0.414062;0.324219;0.238281;0.160156;0.078125;0;-0.078125;-0.160156;-0.239823;-0.322964;-0.400683;-0.478776;-0.552049;-0.62023;-0.681993;-0.740189;-0.791535;-0.835766;-0.875913;-0.909122;-0.937655;-0.960287;-0.977913;-0.990261;-0.997576;-0.997576;-0.990261;-0.977913;-0.960287;-0.937655;-0.909122;-0.875913;-0.835766;-0.791535;-0.740189;-0.681993;-0.62023;-0.552049;-0.478776;-0.400683;-0.322964;-0.239823;-0.160156;-0.078125;0;0.078125;0.160156;0.238281;0.324219;0.414062;0.508036;0.600641;0.67719;0.743991;0.798243;0.844653;0.883212;0.914195;0.939198;0.958343;0.974154;0.985509;0.993821;0.998462;1;1 + + + + SuperEllipse + Normalized SuperEllipse with Ratio + + 0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0 + 0;0.000976562;0.078125;0.15625;0.234375;0.316406;0.394531;0.472656;0.552734;0.630859;0.707031;0.78125;0.847656;0.908203;0.956055;0.988281;0.999996;1;1;1;1;1;1;1;0.999146;0.989258;0.969727;0.939453;0.900391;0.853516;0.800781;0.740234;0.675781;0.609375;0.537109;0.464844;0.388672;0.3125;0.234375;0.15625;0.078125;-0.078125;-0.15625;-0.234375;-0.3125;-0.388672;-0.464844;-0.537109;-0.609375;-0.675781;-0.740234;-0.800781;-0.853516;-0.900391;-0.939453;-0.969727;-0.989258;-0.999146;-1;-1;-1;-1;-1;-1;-1;-0.999996;-0.988281;-0.956055;-0.908203;-0.847656;-0.78125;-0.707031;-0.630859;-0.552734;-0.472656;-0.394531;-0.316406;-0.234375;-0.15625;-0.078125;-0.000976562;-0 + 1;1;0.998209;0.992804;0.98368;0.969899;0.952473;0.930423;0.902364;0.868698;0.828438;0.779829;0.724947;0.659317;0.585879;0.503534;0.415718;0.324219;0.238281;0.160156;0.078125;0;-0.078125;-0.160156;-0.239823;-0.322964;-0.400683;-0.478776;-0.552049;-0.62023;-0.681993;-0.740189;-0.791535;-0.835766;-0.875913;-0.909122;-0.937655;-0.960287;-0.977913;-0.990261;-0.997576;-0.997576;-0.990261;-0.977913;-0.960287;-0.937655;-0.909122;-0.875913;-0.835766;-0.791535;-0.740189;-0.681993;-0.62023;-0.552049;-0.478776;-0.400683;-0.322964;-0.239823;-0.160156;-0.078125;0;0.078125;0.160156;0.238281;0.324219;0.415718;0.503534;0.585879;0.659317;0.724947;0.779829;0.828438;0.868698;0.902364;0.930423;0.952473;0.969899;0.98368;0.992804;0.998209;1;1 + + + + SuperEllipse + Normalized SuperEllipse with Ratio + + 0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0 + 0;0.000976562;0.078125;0.15625;0.234375;0.3125;0.388672;0.464844;0.537109;0.609375;0.675781;0.740234;0.800781;0.853516;0.900391;0.939453;0.969727;0.989258;0.999146;1;1;1;1;1;0.996094;0.98291;0.960938;0.929688;0.890625;0.84375;0.791016;0.734375;0.669922;0.603516;0.535156;0.460938;0.386719;0.3125;0.234375;0.15625;0.078125;-0.078125;-0.15625;-0.234375;-0.3125;-0.386719;-0.460938;-0.535156;-0.603516;-0.669922;-0.734375;-0.791016;-0.84375;-0.890625;-0.929688;-0.960938;-0.98291;-0.996094;-1;-1;-1;-1;-1;-0.999146;-0.989258;-0.969727;-0.939453;-0.900391;-0.853516;-0.800781;-0.740234;-0.675781;-0.609375;-0.537109;-0.464844;-0.388672;-0.3125;-0.234375;-0.15625;-0.078125;-0.000976562;-0 + 1;1;0.997576;0.990261;0.977913;0.960287;0.937655;0.909122;0.875913;0.835766;0.791535;0.740189;0.681993;0.62023;0.552049;0.478776;0.400683;0.322964;0.239823;0.160156;0.078125;0;-0.078125;-0.160156;-0.239316;-0.319234;-0.396562;-0.472976;-0.545056;-0.613471;-0.676098;-0.731957;-0.785095;-0.830918;-0.870468;-0.906078;-0.935085;-0.958213;-0.97676;-0.989752;-0.99745;-0.99745;-0.989752;-0.97676;-0.958213;-0.935085;-0.906078;-0.870468;-0.830918;-0.785095;-0.731957;-0.676098;-0.613471;-0.545056;-0.472976;-0.396562;-0.319234;-0.239316;-0.160156;-0.078125;0;0.078125;0.160156;0.239823;0.322964;0.400683;0.478776;0.552049;0.62023;0.681993;0.740189;0.791535;0.835766;0.875913;0.909122;0.937655;0.960287;0.977913;0.990261;0.997576;1;1 + + + + SuperEllipse + Normalized SuperEllipse with Ratio + + 0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0 + 0;0.000976562;0.078125;0.15625;0.234375;0.308594;0.382812;0.457031;0.525391;0.591797;0.654297;0.712891;0.767578;0.816406;0.861328;0.900391;0.933594;0.958984;0.979492;0.992676;0.999268;1;0.999268;0.992676;0.979492;0.958984;0.933594;0.900391;0.861328;0.816406;0.767578;0.712891;0.654297;0.591797;0.525391;0.457031;0.382812;0.308594;0.234375;0.15625;0.078125;-0.078125;-0.15625;-0.234375;-0.308594;-0.382812;-0.457031;-0.525391;-0.591797;-0.654297;-0.712891;-0.767578;-0.816406;-0.861328;-0.900391;-0.933594;-0.958984;-0.979492;-0.992676;-0.999268;-1;-0.999268;-0.992676;-0.979492;-0.958984;-0.933594;-0.900391;-0.861328;-0.816406;-0.767578;-0.712891;-0.654297;-0.591797;-0.525391;-0.457031;-0.382812;-0.308594;-0.234375;-0.15625;-0.078125;-0.000976562;-0 + 1;1;0.99707;0.988226;0.9733;0.953215;0.92698;0.894028;0.857037;0.814117;0.766332;0.713645;0.655823;0.594975;0.528421;0.458476;0.384905;0.313131;0.234549;0.157216;0.0780917;0;-0.0780917;-0.157216;-0.234549;-0.313131;-0.384905;-0.458476;-0.528421;-0.594975;-0.655823;-0.713645;-0.766332;-0.814117;-0.857037;-0.894028;-0.92698;-0.953215;-0.9733;-0.988226;-0.99707;-0.99707;-0.988226;-0.9733;-0.953215;-0.92698;-0.894028;-0.857037;-0.814117;-0.766332;-0.713645;-0.655823;-0.594975;-0.528421;-0.458476;-0.384905;-0.313131;-0.234549;-0.157216;-0.0780917;0;0.0780917;0.157216;0.234549;0.313131;0.384905;0.458476;0.528421;0.594975;0.655823;0.713645;0.766332;0.814117;0.857037;0.894028;0.92698;0.953215;0.9733;0.988226;0.99707;1;1 + + + + + + NameD150_VAMP_W_SupCritProf1 + Profile generated automaticallz bz WingLib + + 1;0.993181;0.972909;0.939737;0.89457;0.838641;0.773474;0.700848;0.622743;0.54129;0.45871;0.377257;0.299152;0.226526;0.161359;0.10543;0.0602631;0.0270914;0.00681934;0;0.00681934;0.0270914;0.0602631;0.10543;0.161359;0.226526;0.299152;0.377257;0.45871;0.54129;0.622743;0.700848;0.773474;0.838641;0.89457;0.939737;0.972909;0.993181;1 + 0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0 + 0;-0.00057906;-0.00238273;-0.00582898;-0.0117713;-0.0209512;-0.0334801;-0.0477972;-0.0619857;-0.0738688;-0.0820266;-0.0861878;-0.0865919;-0.0834552;-0.0770162;-0.0675308;-0.0546752;-0.0377444;-0.0203324;0;0.0234472;0.0414468;0.0542718;0.0620023;0.0660096;0.0669758;0.0652781;0.0618709;0.0573285;0.0520147;0.0461073;0.0396056;0.0324085;0.0247134;0.0170446;0.0100999;0.00478703;0.00156842;0 + + + + NameD150_VAMP_HL_NACA0000Prof1 + Profile generated automaticallz bz WingLib + + 1;0.95;0.9;0.8;0.7;0.6;0.5;0.4;0.3;0.25;0.2;0.15;0.1;0.075;0.05;0.025;0.0125;0;0.0125;0.025;0.05;0.075;0.1;0.15;0.2;0.25;0.3;0.4;0.5;0.6;0.7;0.8;0.9;0.95;1 + 0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0 + 0;-0.00672;-0.01207;-0.02187;-0.03053;-0.03803;-0.04412;-0.04837;-0.05002;-0.04952;-0.04782;-0.04455;-0.03902;-0.035;-0.02962;-0.02178;-0.01578;0;0.01578;0.02178;0.02962;0.035;0.03902;0.04455;0.04782;0.04952;0.05002;0.04837;0.04412;0.03803;0.03053;0.02187;0.01207;0.00672;0 + + + + NameD150_VAMP_SL_NACA0000Prof1 + Profile generated automaticallz bz WingLib + + 1;0.95;0.9;0.8;0.7;0.6;0.5;0.4;0.3;0.25;0.2;0.15;0.1;0.075;0.05;0.025;0.0125;0;0.0125;0.025;0.05;0.075;0.1;0.15;0.2;0.25;0.3;0.4;0.5;0.6;0.7;0.8;0.9;0.95;1 + 0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0 + 0;-0.00672;-0.01207;-0.02187;-0.03053;-0.03803;-0.04412;-0.04837;-0.05002;-0.04952;-0.04782;-0.04455;-0.03902;-0.035;-0.02962;-0.02178;-0.01578;0;0.01578;0.02178;0.02962;0.035;0.03902;0.04455;0.04782;0.04952;0.05002;0.04837;0.04412;0.03803;0.03053;0.02187;0.01207;0.00672;0 + + + + +
+ + + + + 701.813 + + + + + test_apm + + + + test_apm + + + +
diff --git a/src/ceasiompy/utils/tests/tests_workflowclasses/test_workflowclasses.py b/src/ceasiompy/utils/tests/tests_workflowclasses/test_workflowclasses.py new file mode 100755 index 000000000..8c3935021 --- /dev/null +++ b/src/ceasiompy/utils/tests/tests_workflowclasses/test_workflowclasses.py @@ -0,0 +1,155 @@ +""" +CEASIOMpy: Conceptual Aircraft Design Software + +Developed by CFS ENGINEERING, 1015 Lausanne, Switzerland + +Test functions for 'utils/workflowclasses.py' +""" + +# ================================================================================================= +# IMPORTS +# ================================================================================================= + +import pytest + +from ceasiompy.utils.ceasiompyutils import run_module, current_workflow_dir + +from pathlib import Path +from ceasiompy.utils.workflowclasses import ModuleToRun, Workflow + + +MODULE_DIR = Path(__file__).parent +CPACS_PATH = Path( + MODULE_DIR.parents[3].parent, "test_files", "CPACSfiles", "D150_simple.xml" +) +CPACS_PATH_OUT = Path(MODULE_DIR, "D150_simple_out.xml") + +# ================================================================================================= +# TESTS +# ================================================================================================= + + +def test_module_name_error(): + + with pytest.raises(ValueError): + ModuleToRun("NotExistingModule", "", "", "") + + +def test_no_wkflow_error(): + + with pytest.raises(FileNotFoundError): + ModuleToRun("SU2Run", Path("./Not_WKFLOW"), CPACS_PATH) + + +class TestModuleToRun: + + # Remove old WKFLOW_test dir and create an empty one + wkflow_test = Path(MODULE_DIR, "WKFLOW_test") + wkflow_dir = current_workflow_dir() + module_works = ModuleToRun("SU2Run", wkflow_dir, CPACS_PATH, CPACS_PATH) + + def test_default_values(self): + + assert self.module_works.module_dir.exists() + assert self.module_works.wkflow_dir.exists() + assert self.module_works.cpacs_in.exists() + assert self.module_works.cpacs_out.exists() + assert self.module_works.gui_related_modules == [] + + def test_create_module_wkflow_dir(self): + + self.module_works.optim_method = "DOE" + if Path(self.wkflow_test, "01_SU2Run").exists(): + Path(self.wkflow_test, "01_SU2Run").rmdir() + + self.module_works.create_module_wkflow_dir(1) + assert self.module_works.module_wkflow_path.exists() + assert self.module_works.module_wkflow_path.stem == "01_SU2Run" + + def test_run(self): + + # Remove CPACS output file from privious run + if CPACS_PATH_OUT.exists(): + CPACS_PATH_OUT.unlink() + + module = ModuleToRun( + "ModuleTemplate", self.wkflow_dir, CPACS_PATH, CPACS_PATH_OUT) + + # TODO: how to separate test from workflowclasses.py and ceasiompyutils.py + run_module(module) + + assert CPACS_PATH_OUT.exists() + + +class TestWorkflow: + + workflow = Workflow() + wkflow_test = Path(MODULE_DIR, "WKFLOW_test") + + MODULE_TO_RUN = [ + "CLCalculator", + "PyAVL", + "SaveAeroCoefficients", + ] + wkflow_test.mkdir(exist_ok=True) + cfg_path = wkflow_test / "ceasiompy.cfg" + if not cfg_path.exists(): + cfg_path.write_text( + "% File written 2022-01-17 14:46:53.344314\n" + "CPACS_TOOLINPUT = ./D150_simple.xml\n" + "MODULE_TO_RUN = ( CLCalculator, PyAVL, SaveAeroCoefficients)\n" + ) + + def test_from_config_file(self): + self.workflow.from_config_file( + Path(MODULE_DIR, "WKFLOW_test", "ceasiompy.cfg") + ) + assert self.workflow.modules_list == self.MODULE_TO_RUN + + def test_set_workflow(self): + # Test all raising errors + self.workflow.optim_method = "notValidMethod" + with pytest.raises(ValueError): + self.workflow.set_workflow() + + self.workflow.working_dir = "" + with pytest.raises(ValueError): + self.workflow.set_workflow() + + self.workflow.from_config_file(Path(MODULE_DIR, "WKFLOW_test", "ceasiompy.cfg")) + self.workflow.cpacs_in = Path(MODULE_DIR, "NotExistingCPACS.xml") + with pytest.raises(FileNotFoundError): + self.workflow.set_workflow() + + # Test normal behavior + self.workflow = Workflow() + self.workflow.from_config_file(Path(MODULE_DIR, "WKFLOW_test", "ceasiompy.cfg")) + self.workflow.cpacs_in = CPACS_PATH + self.workflow.set_workflow() + + assert self.workflow.modules[0].module_wkflow_path == Path( + self.workflow.current_wkflow_dir, "01_CLCalculator" + ) + + assert self.workflow.modules[1].module_wkflow_path == Path( + self.workflow.current_wkflow_dir, "02_PyAVL" + ) + + +# ================================================================================================= +# MAIN +# ================================================================================================= + +if __name__ == "__main__": + test_module_name_error() + test_no_wkflow_error() + test1 = TestModuleToRun() + test1.test_default_values() + test1.test_create_module_wkflow_dir() + test1.test_run() + test2 = TestWorkflow() + test2.test_from_config_file() + test2.test_set_workflow() + print("Test configfile.py") + print("To run test use the following command:") + print(">> pytest -v") diff --git a/ceasiompy/utils/workflowclasses.py b/src/ceasiompy/utils/workflowclasses.py similarity index 98% rename from ceasiompy/utils/workflowclasses.py rename to src/ceasiompy/utils/workflowclasses.py index 21ae0ee9c..fcb95bec1 100755 --- a/ceasiompy/utils/workflowclasses.py +++ b/src/ceasiompy/utils/workflowclasses.py @@ -72,7 +72,8 @@ def __init__( if add_res_dir: self.results_dir = get_results_directory( - name, create=True, wkflow_dir=wkflow_dir) + name, create=True, wkflow_dir=wkflow_dir + ) else: self.results_dir = None self.cpacs_out = cpacs_out @@ -115,8 +116,10 @@ def __init__( if "Optimisation" not in self.modules_list: self.modules_list.insert(0, "Optimisation") - self.modules = [ModuleToRun(module, subworkflow_dir) - for module in modules_list] + self.modules = [ + ModuleToRun(module, subworkflow_dir) + for module in modules_list + ] self.iteration = 0 diff --git a/tests/test_integration_tests.py b/tests/test_integration_tests.py index 5517f9961..3b633f29d 100755 --- a/tests/test_integration_tests.py +++ b/tests/test_integration_tests.py @@ -17,7 +17,7 @@ from pathlib import Path from unittest.mock import MagicMock -from src.bin.ceasiompy_exec import run_modules_list +from bin.ceasiompy_exec import run_modules_list from ceasiompy.utils.ceasiompyutils import change_working_dir from ceasiompy.SMUse import MODULE_NAME as SMUSE @@ -28,9 +28,8 @@ from ceasiompy.ExportCSV import MODULE_NAME as EXPORTCSV from ceasiompy.utils.commonpaths import CPACS_FILES_PATH from ceasiompy.CPACS2GMSH import MODULE_NAME as CPACS2GMSH -from ceasiompy.CPACSUpdater import MODULE_NAME as CPACSUPDATER -from ceasiompy.SaveAeroCoefficients import MODULE_NAME as SAVEAEROCOEF from ceasiompy.AeroFrame import MODULE_NAME as AEROFRAMENEW +from ceasiompy.SaveAeroCoefficients import MODULE_NAME as SAVEAEROCOEF # ================================================================================================= # CONSTANTS @@ -91,24 +90,5 @@ def test_integration_3(): @pytest.mark.skipif(not shutil.which("avl"), reason="avl not installed") @pytest.mark.skipif(not shutil.which("SU2_CFD"), reason="SU2_CFD not installed") def test_integration_4(): - run_workflow_test([CPACS2GMSH, SMTRAIN, SMUSE, SAVEAEROCOEF]) + run_workflow_test([SMTRAIN, SMUSE, SAVEAEROCOEF]) assert True - - -@pytest.mark.slow -@pytest.mark.skipif(not shutil.which("gmsh"), reason="gmsh not installed") -@pytest.mark.skipif(not shutil.which("SU2_CFD"), reason="SU2_CFD not installed") -def test_integration_5(): - run_workflow_test([CPACSUPDATER, CPACS2GMSH, SU2RUN]) - assert True - - -# ================================================================================================= -# MAIN -# ================================================================================================= - -if __name__ == "__main__": - test_integration_1() - print("Integration tests") - print("To run test use the following command:") - print(">> pytest -v . --cov=../ceasiompy --cov-report term")