Dimensional analysis of a formula: MathS.Dimensions.Of and DimensionlessGroups
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
Review the design points in the issue, then inspect the proposed implementation in Functions/Dimensions/* and Convenience/MathS.Dimensions.cs, along with Tests/UnitTests/Convenience/DimensionsTest.cs. Run the listed unit tests and compare their coverage with the stated consistency, inconsistency, and undetermined cases; the issue says a pull request will follow once the design is accepted.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
What it is. Given the dimension of each variable (a map Variable → Dimension over the seven SI base dimensions, with rational exponents), say whether a formula is physically meaningful, what dimension it has, and where it stops making sense; and give the Buckingham π groups of a set of variables.
var (L, T) = (Dimension.Length, Dimension.Time);
var dims = new Dictionary<Entity.Variable, Dimension> { ["g"] = L / T.Pow(2), ["h"] = L, ["t"] = T };
MathS.Dimensions.Of("sqrt(2 g h)", dims); // Consistent: L T^-1
MathS.Dimensions.Of("h + g t", dims); // Inconsistent at h + g * t: h has dimension L and g * t has dimension L T^-1, ...
// pipe: rho M L^-3, v L T^-1, d L, mu M L^-1 T^-1
MathS.Dimensions.DimensionlessGroups(new Entity.Variable[] { "rho", "v", "d", "mu" }, pipe); // [ mu / (rho * v * d) ]
Why here. Units libraries (UnitsNet) check values; nothing in .NET checks a formula. The walk needs every node type, which the kernel has.
Design points to agree on.
- The dimension map is passed, not attached to variables, so nothing about printing, parsing or simplification changes, and the type layer of #1237 / #1019 is not pre-empted.
- Three-valued:
Consistent,Inconsistent(with the subexpression and a reason),Undetermined(undeclared variable, unread node, dimensional base to a symbolic power). Never a guess. - Nothing is simplified first:
sin(x) - sin(x)withxa length is inconsistent. - A literal
0oroofits any dimension where added or compared (v = 0). - Exponents of a dimensional base must be rational;
L^piis inconsistent.
Packaging (Packaging.md §4). No clause fires: no dependency, no floor raise, no data, composes the kernel; not on any default path, so (B) does not apply. → kernel. A UnitsNet bridge would be (D) and separate; not part of this.
Implementation, for judging the design against working code. Branch feat/dimensional-analysis, one commit on master 87a0eff: Functions/Dimensions/*, Convenience/MathS.Dimensions.cs, Tests/UnitTests/Convenience/DimensionsTest.cs (38 cases), +54 lines of PublicApi.txt. UnitTests 18335 passed / 13 skipped, FSharpWrapperUnitTests 134 passed. No existing answer moves, so no BREAKING-CHANGES entry. The pull request will follow Accepted.
Worked use, together with the shader-source feature (#2293). A water wave from ω² = g k tanh(k h): the check gives ω the dimension T⁻¹ and rejects the shallow-water typo ω = √(g k h) inside the phase; the π groups are k A, k h and g k t².
Milestone: 2.7.0 (additive).
- Lenguaje dominante
- C#
- Estrellas
- 831
- Forks
- 79
- Merge medio
- 1 h 12 min
- PR fusionados (30 d)
- 518
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de ASC-Community/AngouriMath
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
ASC-Community/AngouriMath#2220 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
Opinions wanted
Dificultad 4/5 Más de una semana Aptitud para principiantes 15/100
ASC-Community/AngouriMath#2319 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 18/100
ASC-Community/AngouriMath#2298 ·
Los mantenedores suelen responder en 1 día
-
The kernel under WebAssembly: 1.26 MB Brotli over the bare runtime, and 0.2 s to the first SimplifyAbierto
Dificultad 3/5 Medio día Aptitud para principiantes 48/100
ASC-Community/AngouriMath#2296 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
ASC-Community/AngouriMath#2293 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de ASC-Community/AngouriMath
Issues similares
-
VB -> C#
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
icsharpcode/CodeConverter#1301 ·
Los mantenedores suelen responder en 3 días
-
PettingZoo wrappers send only the first action component to every action dimensionPosiblemente ocupada @RaphaelFakhri la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
Unity-Technologies/ml-agents#6341 ·
Los mantenedores suelen responder en 1 día
-
Area: World-Readiness
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
microsoft/calculator#2522 ·
-
needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Sonarr/Sonarr#9274 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
mailto support for hyperlinkAbiertoenhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100