Getting started

This page provides instructions for installing CADDEE.

Installation

Note

As CADDEE is currently still under active development, we recommend following the installation instruction for developers. In addition, we recommend installing CADDEE and all subsequent packages within a conda environment.

Installation instructions for developers

First, create a conda environment with Python 3.9 or 3.10

conda create -n caddee_env python=3.9
conda activate caddee_env

To install CADDEE_alpha, first clone the repository and install using pip. On the terminal or command line, run

git clone https://github.com/LSDOlab/CADDEE_alpha.git
cd CADDEE_alpha
pip install -e ./CADDEE_alpha

Installation instructions for users (for future, stable versions)

For direct installation with all dependencies, run on the terminal or command line

pip install git+https://github.com/LSDOlab/CADDEE_alpha.git

Additional packages

CADDEE is a toolsuite for integrating physics-based solvers to build complex multi-disciplinary models of engineering systems. Therefore, a number of external packages are available and need to be installed. to take full advantage of CADDEE’s capabilities. In future versions of CADDEE, these packages will be automatically installed. The following table provides an overview of all the packages that can be interfaced with CADDEE. The installation of these packages is identical to installing CADDEE, with the exception that if the working branch is not main, the corresponding branch needs to be “checked out” via git checkout branch_name, where branch_name is the one listed in the right column of the table below.

Package

Description

Working branch (for CADDEE scripts)

Notes

CSDL

Computational System Design Language; Python-based algebraic modeling language for building multidisciplinary
computational models of engineering systems with automated adjoint-based sensitivity analysis

main

Requires python>=3.9

modopt

A MODular development environment and library for OPTimization algorithms

main

lsdo_geo

Geometry engine for efficient manipulation of geometries via free-form deformation techniques

csdl2_implementation

lsdo_function_spaces

Package that enables the solver-independent field representation of field quantities (e.g., pressure) via a host of functions
that can be fit to solver data (note: mind the installation instructions regarding Cython)

main

special instructions for installing Cython (*see below)

Aframe

Linear (Euler–Bernoulli) beam solver

2

FEMO

Finite Element in PDE-constrained Multidisciplinary Optimization problems

main

package leverages FEniCS and has special installation instructions

VortexAD

Vortex-based (i.e., low-speed) aerodynamic solver with
- steady/unsteady vortex lattice method (VLM)
- steady/unsteady panel method

dev_ml (steady VLM only)

BladeAD

Rotor aerodynamic solver with implementations of:
- Blade element moment theory
- Dynamic inflow (steady)
    - Pitt–Peters
    - Peters–He

main

lsdo_acoustics

Rotor aeroacoustic models for tonal and broadband noise
- Tonal: Lowson (w/ Barry–Magliozzi thickness noise component)
- Broadband:
    - Gill-Lee semi-empirical
    - Brook–Pope–Marcolini (under development)

dev_csdl_alpha

lsdo_airfoil

Subsonic machine learning model for airfoil aerodynamics (based on XFOIL training data) for coefficients
and boundary layer parameters and airfoil shape parameterization

main

requires PyTorch

*Special installation instructions for lsdo_function_spaces

This package uses Cython for better performance of projections. A few extra steps are required for installation on Ubuntu (MacOS not tested but should work the same):

conda install cython=0.29.28
git clone https://github.com/LSDOlab/lsdo_b_splines_cython.git
pip install -e ./lsdo_b_spline_cython
git clone https://github.com/LSDOlab/lsdo_function_spaces.git
pip install -e ./lsdo_function_spaces