Skip to content

Commit ce77044

Browse files
authored
Merge pull request #374 from OpenSourceAWE/agent/347-k2-and-k4-in-the-artificial-damping-sett
Remove artificial damping, as the Python package did
2 parents a059747 + 672a138 commit ce77044

18 files changed

Lines changed: 52 additions & 120 deletions

CHANGELOG.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,12 @@
2929

3030
### Changed
3131

32+
- BREAKING: artificial damping is removed: the `is_with_artificial_damping` and
33+
`artificial_damping` keyword arguments of `Solver`, and the `artificial_damping`, `k2`
34+
and `k4` solver settings. `k2` and `k4` had no effect; `artificial_damping: true`
35+
smoothed the circulation with fixed factors, so a solve that had it on now gives
36+
different results. A settings file that still sets these keys loads with a warning. The post-stall stabiliser is
37+
`is_with_artificial_viscosity`.
3238
- BREAKING: `ObjAdapter.center_to_com!`, `calculate_inertia_tensor` and
3339
`calc_inertia_y_rotation` are removed. Mesh mass properties are computed by
3440
SymbolicAWEModels, which reads the mesh with `read_faces`.
@@ -85,8 +91,6 @@
8591
- Inside its vortex core, `velocity_3D_trailing_vortex!` induces an azimuthal velocity
8692
instead of a radial one. Only points within the millimetre-scale Oseen core of a
8793
panel's chordwise trailing segment were affected.
88-
- With `artificial_damping` on, an iteration whose circulation is already smooth no longer
89-
re-applies the previous iteration's damping correction.
9094

9195
## VortexStepMethod v5.1.1 2026-09-12
9296

data/TUDELFT_V3_KITE/vsm_settings.yaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,6 @@ solver_settings:
6666
relaxation_factor: 0.01 # [0.001-0.1] Under-relaxation for stability
6767

6868
# --- Numerical Stability ---
69-
artificial_damping: false # Enable artificial damping for unstable cases
70-
k2: 0.1 # 2nd-order damping coefficient
71-
k4: 0.0 # 4th-order damping coefficient
7269
core_radius_fraction: 0.05 # Vortex core radius (fraction of filament length)
7370

7471
# --- Initial Conditions ---

data/TUDELFT_V3_KITE/vsm_settings_coarse.yaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,6 @@ solver_settings:
7070
relaxation_factor: 0.01 # [0.001-0.1] Under-relaxation for stability
7171

7272
# --- Numerical Stability ---
73-
artificial_damping: false # Enable artificial damping for unstable cases
74-
k2: 0.1 # 2nd-order damping coefficient
75-
k4: 0.0 # 4th-order damping coefficient
7673
core_radius_fraction: 1e-20 # Vortex core radius (fraction of filament length)
7774

7875
# --- Initial Conditions ---

data/pyramid_model/vsm_settings.yaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,6 @@ solver_settings:
6565
relaxation_factor: 0.01 # [0.001-0.1] Under-relaxation for stability
6666

6767
# --- Numerical Stability ---
68-
artificial_damping: false # Enable artificial damping for unstable cases
69-
k2: 0.0 # 2nd-order damping coefficient
70-
k4: 0.0 # 4th-order damping coefficient
7168
core_radius_fraction: 0.05 # Vortex core radius (fraction of filament length)
7269

7370
# --- Initial Conditions ---

data/ram_air_kite/vsm_settings.yaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ solver_settings:
2323
rtol: 1e-5 # relative error [-]
2424
tol_reference_error: 0.001
2525
relaxation_factor: 0.03 # relaxation factor for convergence
26-
artificial_damping: false # whether to apply artificial damping
27-
k2: 0.1 # artificial damping parameter
28-
k4: 0.0 # artificial damping parameter
2926
type_initial_gamma_distribution: ELLIPTIC
3027
use_gamme_prev: false
3128
core_radius_fraction: 0.05

data/ram_air_kite/vsm_settings_dual.yaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,6 @@ solver_settings:
2828
rtol: 1e-5 # relative error [-]
2929
tol_reference_error: 0.001
3030
relaxation_factor: 0.03 # relaxation factor for convergence
31-
artificial_damping: false # whether to apply artificial damping
32-
k2: 0.1 # artificial damping parameter
33-
k4: 0.0 # artificial damping parameter
3431
type_initial_gamma_distribution: ELLIPTIC
3532
use_gamme_prev: false
3633
core_radius_fraction: 1e-20

docs/src/private_functions.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ calculate_stall_angle_list
3838
wing_span_flip
3939
calculate_circulation_distribution_elliptical_wing
4040
_compute_reference_velocity_from_distribution
41-
smooth_circulation!
4241
smooth_distribution!
4342
make_dual_shadow
4443
```

examples/V3_neuralfoil.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ XF_SOLVER = XFoilSolver(npan=XF_NPAN, max_iter=XF_MAX_ITER, ncrit=N_CRIT,
3737
xtrip=(XTR_UPPER, XTR_LOWER), mach=XF_MACH)
3838

3939
# VSM solver stability settings.
40-
RELAXATION = 0.03 # iteration relaxation factor
41-
ARTIFICIAL_DAMPING = false # smooth-circulation stabiliser for difficult cases
40+
RELAXATION = 0.03 # iteration relaxation factor
41+
ARTIFICIAL_VISCOSITY = false # post-stall stabiliser for difficult cases
4242

4343
# V3_25.obj is already in slicer convention (x=chord, y=span, z=up).
4444
ROTATION = I
@@ -76,7 +76,7 @@ angle_range = range(-5, 25, length=31)
7676
println("\nCreating wing with CFD polars...")
7777
settings_cfd = VSMSettings("TUDELFT_V3_KITE/vsm_settings.yaml")
7878
settings_cfd.solver_settings.relaxation_factor = RELAXATION
79-
settings_cfd.solver_settings.artificial_damping = ARTIFICIAL_DAMPING
79+
settings_cfd.solver_settings.is_with_artificial_viscosity = ARTIFICIAL_VISCOSITY
8080
wing_cfd = Wing(settings_cfd)
8181
refine!(wing_cfd)
8282
body_cfd = BodyAerodynamics([wing_cfd])
@@ -91,7 +91,7 @@ VortexStepMethod.reinit!(body_nf)
9191
settings_nf = VSMSettings("TUDELFT_V3_KITE/vsm_settings.yaml")
9292
settings_nf.wings[1].geometry_file = nf_yaml
9393
settings_nf.solver_settings.relaxation_factor = RELAXATION
94-
settings_nf.solver_settings.artificial_damping = ARTIFICIAL_DAMPING
94+
settings_nf.solver_settings.is_with_artificial_viscosity = ARTIFICIAL_VISCOSITY
9595
solver_nf = Solver(settings_nf)
9696

9797
# Compare CFD-polar and NeuralFoil-polar wings against published references

examples/bench.jl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ body_aero = BodyAerodynamics([wing])
6868
vsm_solver = Solver(
6969
wing.n_panels, wing.n_unrefined_sections;
7070
aerodynamic_model_type=VSM,
71-
is_with_artificial_damping=false,
7271
solver_type=LOOP,
7372
)
7473

examples/linearize_check.jl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ body_aero = BodyAerodynamics([wing])
2525

2626
solver = Solver(wing.n_panels, wing.n_unrefined_sections;
2727
aerodynamic_model_type=VSM,
28-
is_with_artificial_damping=false,
2928
rtol=1e-7,
3029
solver_type=LOOP,
3130
use_gamma_prev=false,

0 commit comments

Comments
 (0)