Skip to content

[FluidDynamics] Add process to compute aerodynamic force & moment coefficients from nodal reactions#14139

Draft
juancamarotti wants to merge 11 commits intomasterfrom
fluid/calculate_lift_coefficient_process
Draft

[FluidDynamics] Add process to compute aerodynamic force & moment coefficients from nodal reactions#14139
juancamarotti wants to merge 11 commits intomasterfrom
fluid/calculate_lift_coefficient_process

Conversation

@juancamarotti
Copy link
Contributor

Summary

This PR adds a new C++ process to compute aerodynamic force and moment coefficients from nodal REACTIONs on a given ModelPart.
The aerodynamic load is consistently taken as -REACTION and projected onto wind axes defined by angle of attack α and sideslip β.

The following ModelPart coefficients are computed and stored:

  • LIFT_COEFFICIENT (CL)
  • DRAG_COEFFICIENT (CD)
  • LATERAL_FORCE_COEFFICIENT (CY)
  • ROLLING_MOMENT_COEFFICIENT (Cl)
  • PITCHING_MOMENT_COEFFICIENT (Cm)
  • YAWING_MOMENT_COEFFICIENT (Cn)

Usage

Example parameters:

{
  "model_part_name"             : "FluidModelPart.wet_surface",
  "reference_surface"           : 1.0,
  "reference_chord"             : 1.0,
  "reference_span"              : 1.0,
  "moment_reference_point"      : [0.0, 0.0, 0.0],
  "freestream_dynamic_pressure" : 245.0,
  "angle_of_attack"             : 5.0,
  "sideslip_angle"              : 2.0
}

Copy link
Member

@rubenzorrilla rubenzorrilla left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This duplicates the compute_drag_process.py. I'd be in favor of extending that with the capabilities in here rather than duplicating them.

EDIT: Note that current implementation works both with body-fitted and unfitted discretizations.

@juancamarotti
Copy link
Contributor Author

This duplicates the compute_drag_process.py. I'd be in favor of extending that with the capabilities in here rather than duplicating them.

EDIT: Note that current implementation works both with body-fitted and unfitted discretizations.

I was checking this compute_drag_process.py and this is intended to be a base class, isn't it? Having said this, do you propose to create a new process for the computation of the aerodynamic coefficients derived from this base class or how would you do it? @rubenzorrilla

@rubenzorrilla
Copy link
Member

This duplicates the compute_drag_process.py. I'd be in favor of extending that with the capabilities in here rather than duplicating them.
EDIT: Note that current implementation works both with body-fitted and unfitted discretizations.

I was checking this compute_drag_process.py and this is intended to be a base class, isn't it? Having said this, do you propose to create a new process for the computation of the aerodynamic coefficients derived from this base class or how would you do it? @rubenzorrilla

My suggestion would be to extend current one to include your stuff, which I think will be very useful. Then we can rename current class and have a deprecated one interfacing the new to avoid breaking backwards compatibility and GUIs. Maybe it's easier to arrange a short meeting to discuss it. Send me an email if you also think so.

@juancamarotti juancamarotti marked this pull request as draft February 16, 2026 10:39
@juancamarotti
Copy link
Contributor Author

@rubenzorrilla I have changed this PR to a draft and I will implement the already discussed changes in another branch

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants