From dbcf4b5413e4478ae9dd08b8d7e2403bfd5e83da Mon Sep 17 00:00:00 2001 From: jakezw Date: Fri, 28 Nov 2025 16:53:40 -0500 Subject: [PATCH 1/5] Add example unit (164) files --- src/example_unit_datasets/Unit1.unv | 6 ++++++ src/example_unit_datasets/Unit2.unv | 6 ++++++ src/example_unit_datasets/Unit3.unv | 6 ++++++ src/example_unit_datasets/Unit4.unv | 6 ++++++ src/example_unit_datasets/Unit5.unv | 6 ++++++ src/example_unit_datasets/Unit6.unv | 6 ++++++ src/example_unit_datasets/Unit7.unv | 6 ++++++ src/example_unit_datasets/Unit8.unv | 6 ++++++ src/example_unit_datasets/Unit9.unv | 6 ++++++ 9 files changed, 54 insertions(+) create mode 100644 src/example_unit_datasets/Unit1.unv create mode 100644 src/example_unit_datasets/Unit2.unv create mode 100644 src/example_unit_datasets/Unit3.unv create mode 100644 src/example_unit_datasets/Unit4.unv create mode 100644 src/example_unit_datasets/Unit5.unv create mode 100644 src/example_unit_datasets/Unit6.unv create mode 100644 src/example_unit_datasets/Unit7.unv create mode 100644 src/example_unit_datasets/Unit8.unv create mode 100644 src/example_unit_datasets/Unit9.unv diff --git a/src/example_unit_datasets/Unit1.unv b/src/example_unit_datasets/Unit1.unv new file mode 100644 index 0000000..ea2e44f --- /dev/null +++ b/src/example_unit_datasets/Unit1.unv @@ -0,0 +1,6 @@ + -1 + 164 + 1Meter (newton) 2 + 1.00000000000000000D+00 1.00000000000000000D+00 1.00000000000000000D+00 + 2.73150000000000000D+02 + -1 diff --git a/src/example_unit_datasets/Unit2.unv b/src/example_unit_datasets/Unit2.unv new file mode 100644 index 0000000..69f8828 --- /dev/null +++ b/src/example_unit_datasets/Unit2.unv @@ -0,0 +1,6 @@ + -1 + 164 + 2Foot (pound f) 2 + 3.28083989501312345D+00 2.24808943099710489D-01 1.80000000000000000D+00 + 4.59670000000000000D+02 + -1 diff --git a/src/example_unit_datasets/Unit3.unv b/src/example_unit_datasets/Unit3.unv new file mode 100644 index 0000000..83375fc --- /dev/null +++ b/src/example_unit_datasets/Unit3.unv @@ -0,0 +1,6 @@ + -1 + 164 + 3Meter (kilogram f) 2 + 1.00000000000000000D+00 1.01971621297792824D-01 1.00000000000000000D+00 + 2.73150000000000000D+02 + -1 diff --git a/src/example_unit_datasets/Unit4.unv b/src/example_unit_datasets/Unit4.unv new file mode 100644 index 0000000..6fe2661 --- /dev/null +++ b/src/example_unit_datasets/Unit4.unv @@ -0,0 +1,6 @@ + -1 + 164 + 4Foot (poundal) 2 + 3.28083989501312345D+00 7.23301385120989426D+00 1.80000000000000000D+00 + 4.59670000000000000D+02 + -1 diff --git a/src/example_unit_datasets/Unit5.unv b/src/example_unit_datasets/Unit5.unv new file mode 100644 index 0000000..5e41c1e --- /dev/null +++ b/src/example_unit_datasets/Unit5.unv @@ -0,0 +1,6 @@ + -1 + 164 + 5mm (milli-newton) 2 + 1.00000000000000000D+03 1.00000000000000000D+03 1.00000000000000000D+00 + 2.73150000000000000D+02 + -1 diff --git a/src/example_unit_datasets/Unit6.unv b/src/example_unit_datasets/Unit6.unv new file mode 100644 index 0000000..e1149e2 --- /dev/null +++ b/src/example_unit_datasets/Unit6.unv @@ -0,0 +1,6 @@ + -1 + 164 + 6cm (centi-newton) 2 + 1.00000000000000000D+02 1.00000000000000000D+02 1.00000000000000000D+00 + 2.73150000000000000D+02 + -1 diff --git a/src/example_unit_datasets/Unit7.unv b/src/example_unit_datasets/Unit7.unv new file mode 100644 index 0000000..c5d442e --- /dev/null +++ b/src/example_unit_datasets/Unit7.unv @@ -0,0 +1,6 @@ + -1 + 164 + 7Inch (pound f) 2 + 3.93700787401574814D+01 2.24808943099710489D-01 1.80000000000000000D+00 + 4.59670000000000000D+02 + -1 diff --git a/src/example_unit_datasets/Unit8.unv b/src/example_unit_datasets/Unit8.unv new file mode 100644 index 0000000..b1afe84 --- /dev/null +++ b/src/example_unit_datasets/Unit8.unv @@ -0,0 +1,6 @@ + -1 + 164 + 8mm (kilogram f) 2 + 1.00000000000000000D+03 1.01971621297792824D-01 1.00000000000000000D+00 + 2.73150000000000000D+02 + -1 diff --git a/src/example_unit_datasets/Unit9.unv b/src/example_unit_datasets/Unit9.unv new file mode 100644 index 0000000..e79eb03 --- /dev/null +++ b/src/example_unit_datasets/Unit9.unv @@ -0,0 +1,6 @@ + -1 + 164 + 10mm (newton) 2 + 1.00000000000000000D+03 1.00000000000000000D+00 1.00000000000000000D+00 + 2.73150000000000000D+02 + -1 From 78e0bf420155dade2fdb176dfa79e332819f3916 Mon Sep 17 00:00:00 2001 From: jakezw Date: Mon, 1 Dec 2025 21:46:41 -0500 Subject: [PATCH 2/5] Some bug fixes and additional datasets --- src/unit_conversion.jl | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/unit_conversion.jl b/src/unit_conversion.jl index f318427..791c24a 100644 --- a/src/unit_conversion.jl +++ b/src/unit_conversion.jl @@ -74,13 +74,13 @@ function convert_to_si!(ds::Dataset58, conversion_length = 1., conversion_force # Ordinate Denominator if any(ds.ord_denom_spec_dtype .== (0, 1)) - factor /= 1. + factor *= 1. elseif any(ds.ord_denom_spec_dtype .== (8, 11, 12)) - factor /= conversion_length + factor *= conversion_length elseif any(ds.ord_denom_spec_dtype .== (9, 13)) - factor /= conversion_force + factor *= conversion_force elseif any(ds.ord_denom_spec_dtype .== (15)) - factor /= (conversion_force/conversion_length^2) + factor *= (conversion_force/conversion_length^2) else @warn "Conversion factor for $(ds.ord_denom_spec_dtype) not implemented, please submit PR" end @@ -93,12 +93,23 @@ function convert_to_si!(ds::Dataset164, conversion_length = 1., conversion_force return nothing end +function convert_to_si!(ds::Dataset1858, conversion_length = 1., conversion_force = 1., conversion_temperature = 1., temperature_offset = 0.) + + return nothing +end + function convert_to_si!(ds::Dataset2411, conversion_length = 1., conversion_force = 1., conversion_temperature = 1., temperature_offset = 0.) - ds.node_coords .*= conversion_length + ds.node_coords ./= conversion_length end function convert_to_si!(ds::Dataset2412, conversion_length = 1., conversion_force = 1., conversion_temperature = 1., temperature_offset = 0.) + return nothing +end + +function convert_to_si!(ds::Dataset2414, conversion_length = 1., conversion_force = 1., conversion_temperature = 1., temperature_offset = 0.) + + # To Do return nothing end \ No newline at end of file From 1ca340005cb3826d4b6292905ded3b8142033839 Mon Sep 17 00:00:00 2001 From: jakezw Date: Mon, 1 Dec 2025 22:32:50 -0500 Subject: [PATCH 3/5] Utilize ds164 in array of datasets --- src/unit_conversion.jl | 57 ++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/src/unit_conversion.jl b/src/unit_conversion.jl index 791c24a..b58e11a 100644 --- a/src/unit_conversion.jl +++ b/src/unit_conversion.jl @@ -21,33 +21,35 @@ function convert_to_si!(ds, ds164) conversion_temperature = ds164.conversion_temperature temperature_offset = ds164.temperature_offset - convert_to_si!(ds, conversion_length, conversion_force, conversion_temperature, temperature_offset) + convert_to_si!(ds, ds164) end -function convert_to_si!(ds::Dataset15, conversion_length = 1., conversion_force = 1., conversion_temperature = 1., temperature_offset = 0.) +function convert_to_si!(ds::Dataset15, ds164) - ds.node_coords ./= conversion_length + ds.node_coords ./= ds164.conversion_length + return ds164 end -function convert_to_si!(ds::Dataset18, conversion_length = 1., conversion_force = 1., conversion_temperature = 1., temperature_offset = 0.) +function convert_to_si!(ds::Dataset18, ds164) - ds.cs_origin ./= conversion_length - ds.cs_x ./= conversion_length - ds.cs_xz ./= conversion_length + ds.cs_origin ./= ds164.conversion_length + ds.cs_x ./= ds164.conversion_length + ds.cs_xz ./= ds164.conversion_length + return ds164 end -function convert_to_si!(ds::Dataset82, conversion_length = 1., conversion_force = 1., conversion_temperature = 1., temperature_offset = 0.) +function convert_to_si!(ds::Dataset82, ds164) - return nothing + return ds164 end -function convert_to_si!(ds::Dataset151, conversion_length = 1., conversion_force = 1., conversion_temperature = 1., temperature_offset = 0.) +function convert_to_si!(ds::Dataset151, ds164) - return nothing + return ds164 end -function convert_to_si!(ds::Dataset58, conversion_length = 1., conversion_force = 1., conversion_temperature = 1., temperature_offset = 0.) +function convert_to_si!(ds::Dataset58, ds164) # Convert data vector # Implemented for ordinate data types 8, 11, 12, 9, 13, 15 @@ -63,11 +65,11 @@ function convert_to_si!(ds::Dataset58, conversion_length = 1., conversion_force if any(ds.ord_spec_dtype .== (0, 1)) factor /= 1. elseif any(ds.ord_spec_dtype .== (8, 11, 12)) - factor /= conversion_length + factor /= ds164.conversion_length elseif any(ds.ord_spec_dtype .== (9, 13)) - factor /= conversion_force + factor /= ds164.conversion_force elseif any(ds.ord_spec_dtype .== (15)) - factor /= (conversion_force/conversion_length^2) + factor /= (ds164.conversion_force/ds164.conversion_length^2) else @warn "Conversion factor for $(ds.ord_spec_dtype) not implemented, please submit PR" end @@ -76,40 +78,41 @@ function convert_to_si!(ds::Dataset58, conversion_length = 1., conversion_force if any(ds.ord_denom_spec_dtype .== (0, 1)) factor *= 1. elseif any(ds.ord_denom_spec_dtype .== (8, 11, 12)) - factor *= conversion_length + factor *= ds164.conversion_length elseif any(ds.ord_denom_spec_dtype .== (9, 13)) - factor *= conversion_force + factor *= ds164.conversion_force elseif any(ds.ord_denom_spec_dtype .== (15)) - factor *= (conversion_force/conversion_length^2) + factor *= (ds164.conversion_force/ds164.conversion_length^2) else @warn "Conversion factor for $(ds.ord_denom_spec_dtype) not implemented, please submit PR" end ds.data .*= factor + return ds164 end -function convert_to_si!(ds::Dataset164, conversion_length = 1., conversion_force = 1., conversion_temperature = 1., temperature_offset = 0.) +function convert_to_si!(ds::Dataset164, ds164) - return nothing + return ds end -function convert_to_si!(ds::Dataset1858, conversion_length = 1., conversion_force = 1., conversion_temperature = 1., temperature_offset = 0.) +function convert_to_si!(ds::Dataset1858, ds164) - return nothing + return ds164 end -function convert_to_si!(ds::Dataset2411, conversion_length = 1., conversion_force = 1., conversion_temperature = 1., temperature_offset = 0.) +function convert_to_si!(ds::Dataset2411, ds164) ds.node_coords ./= conversion_length end -function convert_to_si!(ds::Dataset2412, conversion_length = 1., conversion_force = 1., conversion_temperature = 1., temperature_offset = 0.) +function convert_to_si!(ds::Dataset2412, ds164) - return nothing + return ds164 end -function convert_to_si!(ds::Dataset2414, conversion_length = 1., conversion_force = 1., conversion_temperature = 1., temperature_offset = 0.) +function convert_to_si!(ds::Dataset2414, ds164) # To Do - return nothing + return ds164 end \ No newline at end of file From eb027bf60dc225aa709cc3d4fae6d04445acb804 Mon Sep 17 00:00:00 2001 From: jakezw Date: Mon, 1 Dec 2025 22:36:34 -0500 Subject: [PATCH 4/5] Utilize ds164 bug fixes --- src/unit_conversion.jl | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/unit_conversion.jl b/src/unit_conversion.jl index b58e11a..34d992c 100644 --- a/src/unit_conversion.jl +++ b/src/unit_conversion.jl @@ -15,11 +15,8 @@ Converts the units of the given UFF dataset `ds` to SI units in place. **Output** - `ds`: Dataset with its data converted to SI units. """ -function convert_to_si!(ds, ds164) - conversion_length = ds164.conversion_length - conversion_force = ds164.conversion_force - conversion_temperature = ds164.conversion_temperature - temperature_offset = ds164.temperature_offset +function convert_to_si!(ds) + ds164 = Dataset164(1,"SI", 2, 1.0, 1.0, 1.0, 273.15) convert_to_si!(ds, ds164) end From 21a5ce601fc87e422ade0057a8fb9ce234645376 Mon Sep 17 00:00:00 2001 From: jakezw Date: Mon, 1 Dec 2025 23:08:48 -0500 Subject: [PATCH 5/5] Put for loop in convert_to_si() --- src/unit_conversion.jl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/unit_conversion.jl b/src/unit_conversion.jl index 34d992c..1649004 100644 --- a/src/unit_conversion.jl +++ b/src/unit_conversion.jl @@ -15,10 +15,11 @@ Converts the units of the given UFF dataset `ds` to SI units in place. **Output** - `ds`: Dataset with its data converted to SI units. """ -function convert_to_si!(ds) +function convert_to_si!(datasets) ds164 = Dataset164(1,"SI", 2, 1.0, 1.0, 1.0, 273.15) - - convert_to_si!(ds, ds164) + for ds in datasets + ds164 = convert_to_si!(ds, ds164) + end end function convert_to_si!(ds::Dataset15, ds164)