tulip

Tulip is a per unit length multiconductor transmission line and in-cell parameters solver

https://github.com/opensemba/tulip

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.5%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Tulip is a per unit length multiconductor transmission line and in-cell parameters solver

Basic Info
  • Host: GitHub
  • Owner: OpenSEMBA
  • License: bsd-3-clause
  • Language: C++
  • Default Branch: master
  • Homepage:
  • Size: 8.44 MB
Statistics
  • Stars: 2
  • Watchers: 2
  • Forks: 2
  • Open Issues: 3
  • Releases: 5
Created over 2 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

Tulip

Tests

Tulip (Transmission line unit length conductors and in-cell parameters) is a solver to obtain the per unit length (PUL) $C$ and $L$ matrices which characterize electromagnetic propagation within a multiconductor tranmission line (MTL). Tulip is based on finite element methods to solver an electroestatic problem for each conductor. Some of its features are: - Calculation of p.u.l $C$ and $L$ matrices. - Third order isoparametric elements. - Support for dielectric materials. - Open boundary conditions. - Works on closed, open, or semiopen MTL. - Multilevel domain decomposition. - Uses a modified MFEM solver engine available here. - Result visualization with Paraview or VisIt. - Start from .step CAD files using the step2gmsh workflow.

Compiling

Compilation needs vcpkg with the packages stated in the vcpkg.json manifest.

Additionally needs: - mfem (with the version pointed by the external/mfem-geg submodule)

Compiling in windows (cmake)

Manually (Windows/Linux)

Compile mfem in external/mfem-geg

shell cmake -S external/mfem-geg -B mfem-build/rls -DCMAKE_INSTALL_PREFIX=<path-to-mfem-install-dir> cmake --build mfem-build/rls --target install --config Release

Launch cmake in root.

shell cmake -S . -B pulmtln-build/rls -DMFEM_DIR=<path-to-mfem-install-dir> -DCMAKE_TOOLCHAIN_FILE=<path-to-vcpkg/scripts/buildsystems/vcpkg.cmake> cmake --build pulmtln-build/rls --config Release

Compilation using presets

Configure and build presets are available. To configure

shell cmake -DCMAKE_FIND_USE_PACKAGE_REGISTRY=FALSE --preset "msbuild-vcpkg" -S <project folder> -B <build folder>

which requires the following environment variables to be set (using export)

shell VCPKG_ROOT=<vcpkg root folder> MFEM_PACKAGE=<mfem folder including cmake config package>

Using CMAKE_FIND_USE_PACKAGE_REGISTRY=FALSE warranties that no previously used package is used for compilation if any of the needed paths is not found (a questionable Windows feature).

Testing

Once compiled, test cases can be launched from the project root folder, with

shell <build folder>/bin/Release/pulmtln_tests.exe

Most cases will store results in the Results folder. Please check the codes in test folder for information on the validation cases and their expected tolerances.

Usage example

Call pulmtln from command line as,

shell pulmtln.exe -i <input file>

The input file must be describe a JSON object which describes the problem. An example for the five_wires case (available here) follows,

json { "analysis": { "order": 3, "exportParaViewSolution": true, "exportVisItSolution": true, "exportFolder": "Results/five_wires/" }, "model": { "materials": { "Conductor_0": {"type": "PEC", "tag": 1 }, "Conductor_1": {"type": "PEC", "tag": 2 }, "Conductor_2": {"type": "PEC", "tag": 3 }, "Conductor_3": {"type": "PEC", "tag": 4 }, "Conductor_4": {"type": "PEC", "tag": 5 }, "Conductor_5": {"type": "PEC", "tag": 6 }, "Dielectric_1": {"type": "Dielectric", "eps_r": 2.0, "tag": 8}, "Dielectric_2": {"type": "Dielectric", "eps_r": 2.0, "tag": 9}, "Dielectric_3": {"type": "Dielectric", "eps_r": 2.0, "tag": 10}, "Dielectric_4": {"type": "Dielectric", "eps_r": 2.0, "tag": 11}, "Dielectric_5": {"type": "Dielectric", "eps_r": 2.0, "tag": 12} }, "gmshFile": "five_wires.msh" } }

This object must contain the following entries:

  • An analysis JSON object specifies options for the solver such as the order of the FEM basis and other exporting options.
  • A model JSON object which specifies
    • the mesh through gmshFile. In this case the five_wires.msh file has been generated from a .step file using the step2gmsh program.
    • the materials object which identifies materials and boundaries assigned to each layer. The location in the mesh is done through its tag number which corresponds to a physical model in the mesh.

By default, pulmtln will generate a file called matrices.pulmtln.out.json which contains the $C$ and $L$ p.u.l parameters of the MTL. Each row and column corresponds to the N integer in Conductor_N. Conductor_0 is used as reference. These results have been cross-compared [here][test/DriverTest.cpp] to match with Ansys Maxwell. Comparison with SACAMOS does not produce satisfactory because of the different underlying analytical assumptions that are made.

If ExportParaviewSolution and/or ExportVisItSolution are defined as true in analysis, pulmtln will also export visualization results for each simulation performed. This means two results for each conductor different from zero: with and without accounting for dielectrics, used to compute the p.u.l $C$ and $L$ matrices, respectively. Below there is an example of the electric fields for the five_wires case visualized in Paraview with (above) and without (below) considering dielectrics.

Electric field for the five wires case with dielectrics Electric field for the five wires case without dielectrics

License and copyright

pulmtln is licensed under BSD 3-Clause. Its copyright belongs to the University of Granada.

Acknowledgements

This project is funded by the following grants:

  • HECATE - Hybrid ElectriC regional Aircraft distribution TEchnologies. HE-HORIZON-JU-Clean-Aviation-2022-01. European Union.
  • ESAMA - Metodos numericos avanzados para el analisis de materiales electricos y magneticos en aplicaciones aerospaciales. PID2022-137495OB-C31. Spain.

Owner

  • Name: OpenSEMBA
  • Login: OpenSEMBA
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Angulo
    given-names: Luis D.
    orcid: https://orcid.org/0000-0002-1690-7892
  - family-names: Manterola
    given-names: Alejandro M. 
    orcid: https://orcid.org/0000-0002-2406-8128
  - family-names: Gascon
    given-names: Alberto 
    orcid: https://orcid.org/0000-0003-1190-2248
url: "https://github.com/opensemba/tulip"
title: "opensemba/tulip: opensource per unit length multiconductor transmission line and in-cell parameters solver"
date-released: 2023-06-01

GitHub Events

Total
  • Issues event: 7
  • Watch event: 1
  • Issue comment event: 14
  • Push event: 11
  • Pull request review comment event: 4
  • Pull request event: 10
  • Pull request review event: 3
  • Fork event: 2
  • Create event: 1
Last Year
  • Issues event: 7
  • Watch event: 1
  • Issue comment event: 14
  • Push event: 11
  • Pull request review comment event: 4
  • Pull request event: 10
  • Pull request review event: 3
  • Fork event: 2
  • Create event: 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 6
  • Total pull requests: 7
  • Average time to close issues: 18 days
  • Average time to close pull requests: 5 days
  • Total issue authors: 2
  • Total pull request authors: 1
  • Average comments per issue: 3.67
  • Average comments per pull request: 0.0
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 6
  • Pull requests: 7
  • Average time to close issues: 18 days
  • Average time to close pull requests: 5 days
  • Issue authors: 2
  • Pull request authors: 1
  • Average comments per issue: 3.67
  • Average comments per pull request: 0.0
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • lmdiazangulo (3)
  • AdtPereira (3)
Pull Request Authors
  • lmdiazangulo (7)
Top Labels
Issue Labels
question (2) enhancement (1)
Pull Request Labels

Dependencies

.github/workflows/builds-and-tests.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • lukka/get-cmake latest composite
  • lukka/run-vcpkg v11 composite
  • mfem/github-actions/build-mfem v2.4 composite
  • styfle/cancel-workflow-action 0.11.0 composite
vcpkg.json vcpkg
  • gtest *
  • nlohmann-json *