feat: add wallStep_25_10_09 & names in cli

This commit is contained in:
2025-11-20 15:38:53 +03:00
parent ae5714e3b6
commit 75d7c0696a
2 changed files with 22 additions and 5 deletions

View File

@@ -91,11 +91,15 @@ class CustomArgs : CliktCommand() {
val fixTrap: Boolean by option().flag().help("Don't fit trap variable")
val trapFunc: String by option().default("TrapInterpolator").help("trap function by name")
val trapFunc: String by option().default("TrapInterpolator").help(
"trap function by name (NozikTrap, Fine, Fine5, TrapInterpolator, TrapInterpolator_24_07_12, TrapInterpolatorFull)"
)
val rwall: Double by option().double().default(0.17).help("rear wall")
val wallFunc: String by option().default("wallStep").help("wall function by name")
val wallFunc: String by option().default("wallStep").help(
"wall function by name (wallStep, wallStep_24_07_12, wallStep_25_10_09)"
)
val fixRwall: Boolean by option().flag().help("Don't fit rwall variable")

View File

@@ -16,7 +16,7 @@ val WALL_FROM_GEANT_24_07_12 = arrayOf<Double>(
1.0, 0.972786442674142, 0.945952334545635, 0.91964489360908, 0.894233201597419, 0.869259016583796, 0.844669464499728, 0.820761054827299, 0.797111831765082, 0.773672031483916, 0.750952769979141, 0.728844152128026, 0.707387647788205, 0.686195513790801, 0.665647199333165, 0.64545448890474, 0.625764600500126, 0.606609673258992, 0.58788603253725, 0.569558428955913, 0.551775117256022, 0.534257212644989, 0.517156080103177, 0.500604423175015, 0.484208278212981, 0.46834087393578, 0.452845661630844, 0.437580607035776, 0.423030907484895, 0.408756982487279, 0.394878057883627, 0.381282165058327, 0.368184947271076, 0.355217322788931, 0.342516142142084, 0.330340591940748, 0.318597365005246, 0.306926710320603, 0.29577961258859, 0.284894811706111, 0.27455533945152, 0.264394187584754, 0.254267248350536, 0.244669049801152, 0.235251245132475, 0.226043899991291, 0.217203563090168, 0.208591310406031, 0.200293191893472, 0.192330979227748, 0.184710892887505, 0.177080439082853, 0.169739237535198, 0.162683141258776, 0.155818843073912, 0.149170188148744, 0.142737176483273, 0.136596527314122, 0.13056473652126, 0.124614848697224, 0.119119055814281, 0.113816097769336, 0.108600226425423, 0.103514985133056, 0.0987107021261596, 0.0941251726182824, 0.0896816773728016, 0.0853667386859861, 0.0811399234466428, 0.077199250224974, 0.0733674353795943, 0.069575016898967, 0.06596610253837, 0.06248781822932, 0.0592915289521811, 0.0562300167123526, 0.0531114834182774, 0.0501629765405015, 0.0474021207685194, 0.0446547427002683, 0.0420856850198433, 0.0396928742343628, 0.0373207983776992, 0.0351291164017434, 0.0330442193091951, 0.0309966450885174, 0.0290807376658276, 0.0272104470865351, 0.0254904847411659, 0.0237788163673234, 0.0221884473270603, 0.0206779077627426, 0.0193125127001439, 0.0179792567772115, 0.0167144261193751, 0.0155138737408714, 0.0143454605020341, 0.013340853200851, 0.0123165477172917, 0.0113409693164523, 0.0104555878559669, 0.0095546551988687, 0.0087833158468767, 0.00807729152065821, 0.00740029609478351, 0.00677306449806958, 0.006136502183388, 0.0055517771907489, 0.00502822023811992, 0.0045772355363504, 0.00415113274916127, 0.00373747091926233, 0.00334350727173954, 0.00298271951032392, 0.0026385196919619, 0.00233371623835215, 0.00206727240305384, 0.00182363698945422, 0.00158207506873629, 0.00138924023073829, 0.00121403008223473, 0.00102948921576352, 0.000883307967603747, 0.000751641169615865, 0.000640709300444972, 0.00054636537432767, 0.000460315419737164, 0.000386706422436852, 0.000307913692932292, 0.000243635413599625, 0.000193871584438851, 0.000148254741041474, 0.000121299333579388, 9.43439261173016E-05, 6.6351772214366E-05, 5.49475613650218E-05, 3.52493789888819E-05, 1.96981823761399E-05, 9.33071796764522E-06, 3.11023932254841E-06
)
fun wallStep_24_07_12(u: Double): Double {
fun wallstep240712(u: Double): Double {
if (u < 11000) {
return 1.0
}
@@ -45,10 +45,23 @@ fun wallStep(u: Double): Double {
return WALL_INTERPOLATOR.value(u)
}
// исходный угол до 14.2, выходной - 174.3
private val WALL_25_10_09 = arrayOf<Double>(
1.0, 0.975153367, 0.950706856, 0.927038707, 0.903997312, 0.881265386, 0.859041427, 0.836837787, 0.815604755, 0.794446745, 0.773863912, 0.753388923, 0.733701675, 0.714484882, 0.695413446, 0.676732755, 0.658711639, 0.640663952, 0.623121107, 0.60617063, 0.589246724, 0.572630723, 0.556691492, 0.541024218, 0.525582013, 0.510480537, 0.49595111, 0.481331031, 0.467479935, 0.453788264, 0.440585803, 0.427184845, 0.414276225, 0.401777104, 0.389528059, 0.37760724, 0.365892733, 0.35433765, 0.343152992, 0.33232313, 0.321849626, 0.31156368, 0.301393393, 0.291452865, 0.281964036, 0.272684646, 0.263394315, 0.254711983, 0.246340682, 0.237985011, 0.22964497, 0.221551879, 0.213833903, 0.206411328, 0.198993443, 0.191830323, 0.184787552, 0.177897953, 0.171449113, 0.165142504, 0.15904846, 0.152915341, 0.147105759, 0.141311806, 0.135811693, 0.130564781, 0.125475731, 0.120438259, 0.115750893, 0.111013512, 0.106216738, 0.101821649, 0.09761568, 0.093578512, 0.089433499, 0.085544814, 0.081801486, 0.07809567, 0.074625863, 0.071213885, 0.067906628, 0.064710341, 0.061743813, 0.058810106, 0.055970178, 0.053184955, 0.050573222, 0.048105282, 0.045731121, 0.043375716, 0.041206305, 0.039141613, 0.037000336, 0.034998164, 0.03310071, 0.031254835, 0.02952931, 0.02792257, 0.026390853, 0.024777862, 0.023293035, 0.021931682, 0.020710998, 0.019380905, 0.01820711, 0.017122404, 0.016061144, 0.01498269, 0.01402146, 0.013018029, 0.012130258, 0.011279999, 0.010517267, 0.009798298, 0.009073077, 0.008480709, 0.007949297, 0.00735224, 0.006775502, 0.006250342, 0.005712678, 0.005232844, 0.004779581, 0.004398215, 0.004001219, 0.003663616, 0.003369777, 0.003071248, 0.00269926, 0.00242105, 0.002180352, 0.001964661, 0.001772415, 0.001592673, 0.001405116, 0.001251944, 0.00108158, 0.000970608, 0.00087683, 0.000779925, 0.000670517, 0.000578301, 0.000478271, 0.000418878, 0.000356359, 0.000311032, 0.000256328, 0.000209439, 0.000181305, 0.000140668, 0.000117223, 9.53415E-05, 7.18969E-05, 5.47042E-05, 4.37633E-05, 3.43855E-05, 2.96965E-05, 2.50076E-05, 1.71927E-05, 1.40668E-05, 1.25038E-05, 1.25038E-05, 6.2519E-06, 4.68893E-06, 3.12595E-06, 1.56298E-06, 1.56298E-06, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
)
private val WALL_25_10_09_INTERPOLATOR = LinearInterpolator().interpolate(
(WALL_L..WALL_R step WALL_STEP).toDoubleArray(),
WALL_25_10_09.toDoubleArray()
)
fun wall251009(u: Double): Double {
return WALL_25_10_09_INTERPOLATOR.value(u)
}
fun getWallByName(name: String): (u: Double) -> Double {
return when(name) {
return when(name) { // TODO: switch to enum
"wallStep" -> {u: Double -> wallStep(u)}
"wallStep_24_07_12" -> {u: Double -> wallStep_24_07_12(u) }
"wallStep_24_07_12" -> {u: Double -> wallstep240712(u) }
"wallStep_25_10_09" -> {u: Double -> wall251009(u)}
else -> throw IllegalArgumentException()
}
}