Commit Graph

59 Commits

Author SHA1 Message Date
bofdahof
2e0df80e84 Base: Units: refactor
Refactor Units making it constexpr, immutable, with repetition reduced.
Separate data from code.

Constexpr constructed units allow constructing predefined Quantities
from predefined unit types.
2025-06-03 09:31:38 +02:00
Ladislav Michl
a0917bcc7c Base: Units: introduce unit one
Dimensionless quantities have all exponents equal to zero.
Such quantities are simply numbers. The associated unit is
the unit one, symbol 1, although this is rarely explicitly
written.

See chapter 2.3.3 Dimensions of quantities, The International
System of Units, 9th edition.
2025-06-03 09:31:38 +02:00
marioalexis
1c19608799 Base: Add volume charge density unit 2025-03-27 21:13:21 +01:00
André Kapelrud
aaa976953d Base: Add surface charge density unit 2025-01-22 11:17:59 -03:00
Ladislav Michl
379d7ea9d5 Base: Units: return std::string 2024-12-23 17:48:42 +01:00
Ladislav Michl
539b7d43cf Base: Units: hide internals 2024-12-23 17:48:42 +01:00
marioalexis
51c0faff62 Base: Add electromagnetic potential unit 2024-12-13 11:49:44 -05:00
FEA-eng
14a7ca99cd Base: Add moment unit 2024-05-16 12:51:37 -05:00
marioalexis
a671237073 Base: Add stiffness per unit area unit 2024-01-26 13:44:16 -03:00
wmayer
6c82631c8b Base: fix cppcoreguidelines-avoid-non-const-global-variables 2023-11-22 14:06:06 +01:00
wmayer
3ac4dc0686 fix cppcoreguidelines-*
* cppcoreguidelines-init-variables
* cppcoreguidelines-c-copy-assignment-signature
* cppcoreguidelines-macro-usage
* cppcoreguidelines-non-private-member-variables-in-classes
* cppcoreguidelines-pro-type-member-init
* cppcoreguidelines-slicing
* cppcoreguidelines-special-member-functions
* cppcoreguidelines-virtual-class-destructor
2023-11-16 01:22:09 +01:00
wmayer
985def3416 Base: apply clang format 2023-11-13 12:01:26 -05:00
wmayer
75fedd8146 Base: handle several Lint warnings 2023-02-27 20:07:01 +01:00
wmayer
06fc99edfe Base: fix pow() of Unit 2023-02-27 20:07:01 +01:00
Oliver Oxtoby
806c47311e [App] [Base] Add missing Property classes for all Units (#6717)
- Add missing Property classes for all Units
- Add missing units to unit calculator, as well as some missing string representations
- also change units used for dynamic viscosity to the customary Pa*s
2023-02-26 15:28:28 +01:00
Uwe
94a5bf7780 [Core] add quantity Magnetization
- needed for FEM and Material
2023-02-08 20:33:58 +01:00
Uwe
a9b8be3e00 [Core] add current density
- necessary to implement electromagnetic features to the FEM WB
2023-02-04 03:22:24 -06:00
wmayer
d92eaf7a72 Base: fix several warnings reported by code analyzers 2022-08-02 13:04:50 +02:00
berniev
15419982d4 Base: Modernise ctors dtors defs etc 2022-08-02 12:37:46 +02:00
Uwe
4d0a5c045c [Base] Units and Uui: remove unused includes 2022-02-24 11:08:56 +01:00
wmayer
cad0d01883 Base: modernize C++11
* remove redundant void-arg
* use nullptr
* replace deprecated headers
2022-01-25 20:21:30 +01:00
wmayer
5502d1f2a7 Base: clean-up code in UnitsApi 2022-01-25 00:26:47 +01:00
0penBrain
66c513c698 [Core] Fix Quantity construction with value as double + unit as string 2022-01-21 14:56:11 +01:00
Preslav
5030d8bb6d Added stiffness units to FreeCAD [mN/m, N/m, kN/m, MN/m] 2021-08-16 12:27:41 +01:00
donovaly
6c67300d62 [Base] add electrical conductivity
- this is necessary to perform electrodynamics simulations. Since the typical values are in the range of 1e6 S/m, we need the new units kS and MS

- since this is for simulations, also add electrical conductivity to the FEM material cards
2021-03-25 17:13:52 +01:00
luz paz
01b21e0d06 Base: Fix header uniformity, whitespace, and doxygen
[skip ci]
2020-11-22 18:12:16 +01:00
wmayer
826de6beff LGTM: [skip ci]: Ambiguously signed bit-field member
Until C++11 bit fields with integral types should have explicit signedness only.
It is implementation specific whether an -typed bit field is signed, so there could be unexpected sign extension or overflow.

This means that if depending on the compiler int32_t is not explicitly defined as signed the UnitSignature structure may not work
as expected. Since C++14 this has changed and an int of a bit-field is always signed:
https://stackoverflow.com/questions/33723631/signed-bit-field-in-c14
2020-07-27 16:00:47 +02:00
qingfengxia
c6364c823a Base: add VolExpansionCoeff and complete KinematicViscosity unit 2020-05-23 00:03:09 +02:00
donovaly
d1b354fc6b add units Gauss, Weber and Oersted 2020-01-07 07:36:22 -03:00
donovaly
68ea38cc8d add the units Ohm and Siemens 2020-01-05 15:00:46 +01:00
luz.paz
011e5aedfa src/Base: [skip ci] fix header uniformity
This PR fixes header uniformity across all `src/Base` files
2019-12-25 11:38:58 +01:00
donovaly
94bae36cee add the following units:
- mmol
- ml
- bar
- mbar
- kJ
- kWh
- eV
- C
- T
- F (p, n, u, m)
- H (n, u, m)
2019-12-19 13:31:12 +01:00
wmayer
4d831ea442 Basic support for Frequency as unit 2019-10-20 18:14:56 +02:00
Dietmar Czekay
65ccdee9d8 add VacuumPermittivity and fix adding user values to material editor in FEM 2019-09-04 11:29:09 -03:00
Bernd Hahnebach
3650b3e59d Units: add AngleOfFriction as another parameter with Angle unit 2019-04-30 07:41:56 +02:00
Bernd Hahnebach
f1edabd09b Units: add various Material stress properties 2019-02-14 21:11:22 +01:00
wmayer
37ad664f1d density is not an SI base unit 2018-03-28 11:47:08 +02:00
wmayer
c9f25d75d3 fix typo 2018-03-11 18:34:18 +01:00
Frederic Bonnard
91142be1b2 Fix "Unit overflow in pow()" error
During tests on Debian/Ubuntu :
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=836983 a problem was
found when raising a unit to a negative power on some architectures.
By default some architectures have "char" being
unsigned such as the ones listed here and others (
https://wiki.debian.org/ArchitectureSpecificsMemo ).
I just forced the sign-ness of pow()'s argument which fixes the issue.
2017-12-08 17:38:35 +01:00
wmayer
b1bfb62583 add derived unit electric potential 2017-10-16 21:56:13 +02:00
Oliver Oxtoby
f93bdfb927 Base: Add DynamicViscosity and SpecificEnergy units 2017-08-20 16:50:11 +02:00
Bernd Hahnebach
12fd4827d5 Base: add unit for kinematic viscosity 2017-03-18 22:07:24 +01:00
vdwalts
59ac40a584 Base: Units for FEM, new heat and heat flux functions 2016-12-21 11:27:41 -02:00
kgoao
93b7aceb0e FEM: FemConstraintHeatflux: Add DFLUX option to heat flux constraint 2016-12-21 11:27:41 -02:00
wmayer
cb9be09512 Coverity issues:
129643
129654
129689
129714
2016-08-16 14:05:52 +02:00
wmayer
affdb168b7 whitespace improvements 2016-08-04 17:45:04 +02:00
vdwalts
a42fd4b1fb Base: Units: add units for thermomechanical analysis 2016-08-04 17:45:04 +02:00
Przemo Firszt
288fc3d5c1 Units: Add Density to internal schema
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-07-31 14:04:14 -03:00
Eivind Kvedalen
492ede70f9 Unit: Added overflow/underflow checking. 2015-06-25 10:40:00 +02:00
wmayer
f53c22417e + remove unneeded semicolons 2014-05-08 17:32:23 +02:00