diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index 62a2dbf..96509a5 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -8,7 +8,7 @@ jobs: strategy: matrix: runs-on: [ubuntu-latest, macos-latest, windows-latest] - python-version: [3.8, 3.9, '3.10', '3.11', '3.12'] + python-version: [3.8, 3.9, '3.10', '3.11', '3.12', '3.13'] runs-on: ${{ matrix.runs-on }} steps: diff --git a/.github/workflows/pythonpublish.yml b/.github/workflows/pythonpublish.yml index 690f7be..f34486a 100644 --- a/.github/workflows/pythonpublish.yml +++ b/.github/workflows/pythonpublish.yml @@ -10,7 +10,7 @@ jobs: strategy: matrix: runs-on: [ubuntu-latest, windows-latest, macos-latest] - python-version: ['3.8', '3.9', '3.10', '3.11', '3.12'] + python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13'] runs-on: ${{ matrix.runs-on }} steps: - uses: actions/checkout@v4 diff --git a/CITATION.cff b/CITATION.cff index feda498..65aee67 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -5,5 +5,5 @@ authors: given-names: "Saullo G. P." orcid: "https://orcid.org/0000-0001-9711-0991" title: "Methods for analysis and design of composites" -version: 0.7.1 +version: 0.7.2 doi: 10.5281/zenodo.2871782 diff --git a/LICENSE b/LICENSE index 025cc7b..4043047 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2012-2024, Saullo G. P. Castro (S.G.P.Castro@tudelft.nl). +Copyright (c) 2012-2025, Saullo G. P. Castro (S.G.P.Castro@tudelft.nl). All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/README.md b/README.md index d2e2991..ff45309 100644 --- a/README.md +++ b/README.md @@ -30,11 +30,11 @@ Citing this repository ---------------------- Castro, SGP. Methods for analysis and design of composites (Version -0.7.1) [Computer software]. 2024. https://doi.org/10.5281/zenodo.2871782 +0.7.2) [Computer software]. 2025. https://doi.org/10.5281/zenodo.2871782 Bibtex : - @misc{composites2024, + @misc{composites2025, author = {Castro, Saullo G. P.}, doi = {10.5281/zenodo.2871782}, title = {{Methods for analysis and design of composites}} diff --git a/doc/source/conf.py b/doc/source/conf.py index d057b2c..e1e6efa 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -20,7 +20,7 @@ project = 'composites' author = 'Saullo G. P. Castro' -copyright = '2012-2024, ' + author +copyright = '2012-2025, ' + author # The full version, including alpha/beta/rc tags from composites.version import __version__ diff --git a/doc/source/index.rst b/doc/source/index.rst index bc2eb5a..3059ddc 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -27,14 +27,14 @@ https://github.com/saullocastro/composites Citing this library ------------------- -Castro, S. G. P. Methods for analysis and design of composites (Version 0.7.1) [Computer software]. 2024. https://doi.org/10.5281/zenodo.2871782 +Castro, S. G. P. Methods for analysis and design of composites (Version 0.7.2) [Computer software]. 2025. https://doi.org/10.5281/zenodo.2871782 Bibtex : - @misc{composites2024, + @misc{composites2025, author = {Castro, Saullo G. P.}, doi = {10.5281/zenodo.2871782}, - title = {{Methods for analysis and design of composites (Version 0.7.1) [Computer software]. 2024}} + title = {{Methods for analysis and design of composites (Version 0.7.2) [Computer software]. 2025}} } Tutorials diff --git a/doc/source/post-polar-plots-laminate-stiffness.ipynb b/doc/source/post-polar-plots-laminate-stiffness.ipynb new file mode 100644 index 0000000..d87c621 --- /dev/null +++ b/doc/source/post-polar-plots-laminate-stiffness.ipynb @@ -0,0 +1,192 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "d6144946-e8a2-40da-a6b4-20c11d0f0139", + "metadata": {}, + "source": [ + "Tutorial: polar plots for laminate stiffness\n", + "==\n", + "Date: 30 of January 2025\n", + "\n", + "Author: Saullo G. P. Castro\n", + "\n", + "Cite this tutorial as:\n", + "\n", + "Castro, SGP. Methods for analysis and design of composites (Version 0.7.1) [Computer software]. 2024. https://doi.org/10.5281/zenodo.2871782\n" + ] + }, + { + "cell_type": "markdown", + "id": "290213ce-16e5-4668-8fd6-2ff41a14ba54", + "metadata": {}, + "source": [ + "Importing dependencies\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "2b22b902-2954-40ce-811d-bd01efdb5364", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from composites import laminated_plate" + ] + }, + { + "cell_type": "markdown", + "id": "edf2e43e-7e42-4d52-8cd7-4fe134ae337e", + "metadata": {}, + "source": [ + "Defining material properties\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "d16141d8-b8f7-415c-8089-9e5f0d583be7", + "metadata": {}, + "outputs": [], + "source": [ + "E11 = 100e9 # [N/m^2]\n", + "E22 = 8e9 # [N/m^2]\n", + "G12 = G23 = G13 = 8e9 # [N/m^2]\n", + "nu12 = 0.29\n", + "ply_thickness = 1.25e-4 # [m]\n", + "laminaprop = E11, E22, nu12, G12, G13, G23" + ] + }, + { + "cell_type": "markdown", + "id": "0c8a5e49-fde4-4de1-9cf7-bbaf4a716c31", + "metadata": {}, + "source": [ + "Creating reference laminate\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "03492ca4-c660-46cb-8e64-b04f836f79d5", + "metadata": {}, + "outputs": [], + "source": [ + "stack_ref = np.asarray([-45, +45, 0, 0, +45, -45], dtype=float)" + ] + }, + { + "cell_type": "markdown", + "id": "c27378fd-13ba-42a6-a00b-f7fb907b8c1c", + "metadata": {}, + "source": [ + "Calculating membrane stiffness $A_{11}$ in all directions\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "c3af79e4-399b-4d3d-8e9f-fdfe3912e1f8", + "metadata": {}, + "outputs": [], + "source": [ + "angles = np.linspace(0, 360, 1000, endpoint=False)\n", + "A11s = np.zeros_like(angles)\n", + "for i, angle in enumerate(angles):\n", + " lam = laminated_plate(stack=stack_ref-angle, plyt=ply_thickness, laminaprop=laminaprop)\n", + " A11s[i] = lam.ABD[0, 0]" + ] + }, + { + "cell_type": "markdown", + "id": "5606c2cd-0d98-48f1-b7d0-f94fd5caf84b", + "metadata": {}, + "source": [ + "Normalizing plots to keep maximum value 1 in the radial coordinate\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "c43a2d1e-c39b-4e91-b1ab-8dad71ac5b6f", + "metadata": {}, + "outputs": [], + "source": [ + "A11s /= A11s.max()" + ] + }, + { + "cell_type": "markdown", + "id": "8302d93a-cbde-4972-8021-7860ac0f7bff", + "metadata": {}, + "source": [ + "Creating polar plots\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "b3979e99-7c51-42a0-8790-4bb82454f778", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.polar(np.deg2rad(angles), A11s, 'k')\n", + "ax = plt.gca()\n", + "ax.set_yticks([])\n", + "ax.set_xticks(np.deg2rad([0, 45, 90, 135, 180, 225, 270, 315]))\n", + "ax.set_xticklabels([r\"$0^\\circ$\", r\"$+45^\\circ$\", r\"$90^\\circ$\", \"\", \"\", \"\", \"\", r\"$-45^\\circ$\"])\n", + "ax.grid(linestyle='--', lw=0.5)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "00f1be6b-2671-49c7-9455-437a9ac54e9b", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/doc/source/tutorials.rst b/doc/source/tutorials.rst index 458ff13..0f7ef70 100644 --- a/doc/source/tutorials.rst +++ b/doc/source/tutorials.rst @@ -6,3 +6,4 @@ Tutorials :maxdepth: 1 opt-lightweight-discrete-ghost-layer + post-polar-plots-laminate-stiffness diff --git a/setup.py b/setup.py index e7de70b..fe744de 100644 --- a/setup.py +++ b/setup.py @@ -80,12 +80,13 @@ def read(fname): Programming Language :: Python :: 3.10 Programming Language :: Python :: 3.11 Programming Language :: Python :: 3.12 +Programming Language :: Python :: 3.13 License :: OSI Approved :: BSD License """ is_released = True -version = '0.7.1' +version = '0.7.2' fullversion = write_version_py(version, is_released)