Cube Flow Environment
This module provides 3D cube flow CFD environments for reinforcement learning.
CubeBase Objects
class CubeBase(MaiaFlowEnv)
Base class for cube flow environments with Hugging Face integration.
This class provides common functionality for 3D cube-based CFD environments, including reward computation based on drag and lift/side forces.
The reward is computed as: reward = -|C_D| - omega * |C_L| - omega * |C_S|
where C_D is the drag coefficient, C_L is the lift coefficient, C_S is the side force coefficient, and omega is a weighting factor.
__init__
def __init__(env_config: Dict)
Initialize the cube base environment.
Arguments:
env_config- Environment configuration dictionary.
get_reward
def get_reward() -> Tuple[float, Dict]
Compute the reward based on aerodynamic force coefficients.
Calculates non-dimensional force coefficients and returns a reward that penalizes drag, lift, and side forces.
Returns:
Tuple containing:
- reward: Scalar reward (or list for multiple boundaries)
- obj_dict: Dictionary with force information
Cube Objects
class Cube(CubeBase)
3D cube environment with flow control.
This environment simulates flow around a 3D cube geometry.
Attributes:
numJetsInSimulation- Number of jet actuators in the CFD simulation.
__init__
def __init__(env_config: Dict)
Initialize the cube environment.
Arguments:
env_config- Environment configuration dictionary.
convert_action
def convert_action(action: np.ndarray) -> np.ndarray
Convert RL action to CFD actuation format.
Arguments:
action- Action array from the RL agent.
Returns:
Action sequence for the CFD solver.