From 62560027f68354c477d0ac6fdf29ba254b8881e7 Mon Sep 17 00:00:00 2001 From: Ewan Miller Date: Fri, 12 Jul 2024 19:58:11 +0100 Subject: [PATCH 1/7] Add files via upload --- doc/nuTens_logo.png | Bin 0 -> 70647 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/nuTens_logo.png diff --git a/doc/nuTens_logo.png b/doc/nuTens_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a7fe9d68df78ae79a85b77c3f957b01894d18d98 GIT binary patch literal 70647 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 Date: Fri, 12 Jul 2024 19:59:45 +0100 Subject: [PATCH 2/7] Rename nuTens_logo.png to nuTens-logo.png --- doc/{nuTens_logo.png => nuTens-logo.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename doc/{nuTens_logo.png => nuTens-logo.png} (100%) diff --git a/doc/nuTens_logo.png b/doc/nuTens-logo.png similarity index 100% rename from doc/nuTens_logo.png rename to doc/nuTens-logo.png From d3150c84bcfbd2ce0af077bd2a199f406d71edf2 Mon Sep 17 00:00:00 2001 From: Ewan Miller Date: Fri, 12 Jul 2024 20:17:13 +0100 Subject: [PATCH 3/7] add logo to readme --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 98d1ef9..58bca32 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,10 @@ -# nuTens + + +# nuTens A lightweight library for calculating neutrino oscillation probabilities using tensors typically used in machine learning. -[![example workflow](https://github.com/ewanwm/nuTens/actions/workflows/CI-build-and-test.yml/badge.svg)](https://github.com/ewanwm/nuTens/actions/workflows/CI-build-and-test.yml) +nuTens + +[![CI badge](https://github.com/ewanwm/nuTens/actions/workflows/CI-build-and-test.yml/badge.svg)](https://github.com/ewanwm/nuTens/actions/workflows/CI-build-and-test.yml) [![Code - Doxygen](https://img.shields.io/badge/Code-Doxygen-2ea44f)](https://ewanwm.github.io/nuTens/index.html) From 5e645570353cae2c6c9564c4b32637a9d364fa9c Mon Sep 17 00:00:00 2001 From: Ewan Miller Date: Fri, 12 Jul 2024 15:17:47 -0400 Subject: [PATCH 4/7] python script that generates the logo --- doc/logo-generator.py | 77 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 doc/logo-generator.py diff --git a/doc/logo-generator.py b/doc/logo-generator.py new file mode 100644 index 0000000..84ee637 --- /dev/null +++ b/doc/logo-generator.py @@ -0,0 +1,77 @@ +import matplotlib.pyplot as plt +import numpy as np +from matplotlib.patches import Ellipse + +# Function to draw a stylized neutrino wave with higher amplitude on the left +def draw_wave(ax, colour): + x = np.linspace(0, 11.5, 320) + y = np.sin(3*x) * 1.9 + 1.9 + y *= (1.0 - x/(2*np.pi))**3 + y += 0.95 + y[100:] = 0.95 + ax.plot(x + 1, y, color=colour, lw=4) + +def draw_other_waves(ax, colour_1, colour_2): + x = np.linspace(0, 3, 100) + + y_main = ( np.sin(3*x)) * 1.9 + 1.9 + y_main *= (1.0 - x/(2*np.pi))**3 + + # scaling between line1 and line2 + w = (np.sin(2.75*x/3 -1.45) *0.5 +0.5) **1.5 + + # more prominent line + y = (3 - y_main[:100]) + y *= (1 - w) + y += 0.95 + + # less prominent + z = (3 - y_main[:100]) + z *= w + z += 0.95 + + # add some lil wiggles, kinda matter oscillation-y + h = ( x/3 ) *0.055 * np.sin(50*x) + + ax.plot(x + 1, z*(1-h), color=colour_2, lw=2) + ax.plot(x + 1, y*(1+h), color=colour_1, lw=3) + +# Function to draw a grid, kinda tensor-y +def draw_grid(ax, colour): + for i in range(1, 5): + for j in range(1, 5): + circle = Ellipse((i, j), 0.2, 0.2, color=colour) + ax.add_patch(circle) + +# Define mellow colours +mellow_blue = '#4c96c2' +mellow_green = '#a9db6e' +mellow_orange = '#c28d4c' +mellow_red = '#c2504c' +mellow_purple = '#9983c7' + +# Create a figure +fig, ax = plt.subplots(figsize=(8, 4)) + + +# Draw the adjusted neutrino wave with mellow blue +draw_other_waves(ax, mellow_orange, mellow_red) + +# Draw the adjusted neutrino wave with mellow blue +draw_wave(ax, colour=mellow_blue) + +# Draw the modern tensor grid with mellow green +draw_grid(ax, colour=mellow_green) + +# Add the text with the Greek letter ν in mellow dark blue and larger font size +ax.text(8.45, 2.0, 'νTens', fontsize=92, fontweight='bold', color=mellow_purple, va='center', ha='center', family='sans-serif') + +# Set limits and remove axes +ax.set_xlim(0.85, 12.5) ## ax.set_xlim(0, 9) +ax.set_ylim(0.85, 4.15) ## ax.set_ylim(-0.5, 5.5) +ax.set_aspect(9/9) +ax.axis('off') + +# Save the updated logo with the adjustments +plt.savefig('nuTens-logo.png', dpi=300, bbox_inches='tight', transparent=True) +plt.show() \ No newline at end of file From a30945f29a5961edc85c7da2515bb59252671495 Mon Sep 17 00:00:00 2001 From: Ewan Miller Date: Fri, 12 Jul 2024 15:38:02 -0400 Subject: [PATCH 5/7] make a small version of the logo too --- doc/logo-generator.py | 5 ++++- doc/nuTens-logo-small.png | Bin 0 -> 9856 bytes 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 doc/nuTens-logo-small.png diff --git a/doc/logo-generator.py b/doc/logo-generator.py index 84ee637..277c9e3 100644 --- a/doc/logo-generator.py +++ b/doc/logo-generator.py @@ -74,4 +74,7 @@ def draw_grid(ax, colour): # Save the updated logo with the adjustments plt.savefig('nuTens-logo.png', dpi=300, bbox_inches='tight', transparent=True) -plt.show() \ No newline at end of file + +#print("figure size = ", plt.gcf().get_size_inches()) + +plt.savefig('nuTens-logo-small.png', dpi=50, bbox_inches='tight', transparent=True) diff --git a/doc/nuTens-logo-small.png b/doc/nuTens-logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..295c1778be80d397633f7c7f70f27cf31e454b3b GIT binary patch literal 9856 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 Date: Fri, 12 Jul 2024 15:38:13 -0400 Subject: [PATCH 6/7] tell doxygen about it --- doc/doxygen.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/doxygen.config b/doc/doxygen.config index 4aa7b44..fab5df0 100644 --- a/doc/doxygen.config +++ b/doc/doxygen.config @@ -51,7 +51,7 @@ PROJECT_BRIEF = # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy # the logo to the output directory. -PROJECT_LOGO = +PROJECT_LOGO = doc/nuTens-logo-small.png # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is From 0afffab71bba4f8d4ecc7ca56855aea91ad84383 Mon Sep 17 00:00:00 2001 From: Ewan Miller Date: Fri, 12 Jul 2024 15:41:48 -0400 Subject: [PATCH 7/7] make it so the name isn't displayed in htm docs any more --- doc/doxygen.config | 2 +- doc/tweaks.css | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 doc/tweaks.css diff --git a/doc/doxygen.config b/doc/doxygen.config index fab5df0..ddc7a1b 100644 --- a/doc/doxygen.config +++ b/doc/doxygen.config @@ -1213,7 +1213,7 @@ HTML_STYLESHEET = # list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_EXTRA_STYLESHEET = +HTML_EXTRA_STYLESHEET = doc/tweaks.css # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note diff --git a/doc/tweaks.css b/doc/tweaks.css new file mode 100644 index 0000000..c91df4c --- /dev/null +++ b/doc/tweaks.css @@ -0,0 +1 @@ +#projectname {display:none} \ No newline at end of file