porthamiltonianmodelreduction.jl

Model reduction for port-Hamiltonian and passive systems in Julia

https://github.com/jonas-nicodemus/porthamiltonianmodelreduction.jl

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 (10.5%) to scientific vocabulary

Keywords

model-order-reduction port-hamiltonian-systems
Last synced: 7 months ago · JSON representation ·

Repository

Model reduction for port-Hamiltonian and passive systems in Julia

Basic Info
  • Host: GitHub
  • Owner: Jonas-Nicodemus
  • License: mit
  • Language: Julia
  • Default Branch: main
  • Homepage:
  • Size: 246 KB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 1
Topics
model-order-reduction port-hamiltonian-systems
Created 8 months ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

README.md

PortHamiltonianModelReduction

Stable Dev Build Status codecov Code Style: Blue Aqua QA

A Julia package implementing model reduction techniques for port-Hamiltonian (pH) systems.

Installation

Install with the Julia package manager Pkg: julia pkg> add PortHamiltonianModelReduction # Press ']' to enter the Pkg REPL mode. or julia julia> using Pkg; Pkg.add("PortHamiltonianModelReduction")

For the best experience, we recommend also installing PortHamiltonianSystems.jl and ControlSystems.jl. Furthermore, for accessing pH benchmark systems check out PortHamiltonianBenchmarkSystems.jl.

Documentation

Some available commands are:

Interpolation based methods

irka, phirka

Balancing methods

bt, prbt

Passivation methods

klap

Data driven methods

phdmd, opinf, pod

Energy matching

matchnrg

Example

```julia import Random Random.seed!(1234) # for reproducibility

using LinearAlgebra, ControlSystemsBase using PortHamiltonianSystems, PortHamiltonianModelReduction using PortHamiltonianBenchmarkSystems

J, R, Q, B = construct_system(SingleMSDConfig()); Σ = phss(J, R, Q, B, zero(B), 1e-6I(2), zeros(2,2)); # create pH system with the artificial feedthrough term 1e-6I(2) size(Σ.G) # (100, 2)

Σ = phminreal(Σ); # structure preserving minimal realization size(Σ.G) # (73, 2)

r = 10 # reduced order

Σr1 = phirka(Σ, r); norm(Σ - Σr1) # 0.08325552559202813

Σr2 = prbt(Σ, r); norm(Σ - Σr2) # 0.0031763828389874994

Σr3 = irka(ss(Σ), r); norm(Σ - Σr3) # 0.0016571113588666688 ispassive(Σr3) # false

Σr4, _ = klap(Σr3); norm(Σ - Σr4) # 0.0016577342723135616 ispassive(Σr4) # true ```

Owner

  • Name: Jonas Nicodemus
  • Login: Jonas-Nicodemus
  • Kind: user
  • Location: Germany, Stuttgart
  • Company: University of Stuttgart, SC SimTech

Citation (CITATION.bib)

@incollection{BS21,
  title = {Balancing-Related Model Reduction Methods},
  booktitle = {Model {{Order Reduction Volume}} 1: {{System-}} and {{Data-Driven Methods}} and {{Algorithms}}},
  author = {Breiten, Tobias and Stykel, Tatjana},
  editor = {Benner, Peter and {Grivet-Talocia}, Stefano and Quarteroni, Alfio and Rozza, Gianluigi and Schilders, Wil and Silveira, Lu{\'i}s Miguel},
  year = {2021},
  pages = {15--56},
  publisher = {De Gruyter},
  doi = {10.1515/9783110498967-002}
}

@article{CPS04,
  title = {A Convex Programming Approach for Generating Guaranteed Passive Approximations to Tabulated Frequency-Data},
  author = {Coelho, C.P. and Phillips, J. and Silveira, L.M.},
  year = {2004},
  journal = {IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst.},
  volume = {23},
  number = {2},
  pages = {293--301},
  doi = {10.1109/TCAD.2003.822107}
}

@article{DP84,
  title = {A Transformation Approach to Stochastic Model Reduction},
  author = {Desai, U. and Pal, D.},
  year = {1984},
  journal = {IEEE Trans. Automat. Control},
  volume = {29},
  number = {12},
  pages = {1097--1100},
  doi = {10.1109/TAC.1984.1103438}
}

@article{Dum02,
  title = {Parameterization of Positive-Real Transfer Functions with Fixed Poles},
  author = {Dumitrescu, B.},
  year = {2002},
  journal = {IEEE Trans. Circuits Syst. I. Regul. Pap.},
  volume = {49},
  number = {4},
  pages = {523--526},
  doi = {10.1109/81.995670}
}

@article{GAB08,
  title = {$\mathcal{H}_2$ {{Model Reduction}} for {{Large-Scale Linear Dynamical Systems}}},
  author = {Gugercin, S. and Antoulas, A. C. and Beattie, C.},
  year = {2008},
  journal = {SIAM J. Matrix Anal. Appl.},
  volume = {30},
  number = {2},
  pages = {609--638},
  publisher = {{Society for Industrial and Applied Mathematics}},
  doi = {10.1137/060666123}
}

@article{GPBS12,
  title = {Structure-Preserving Tangential Interpolation for Model Reduction of Port-{{Hamiltonian}} Systems},
  author = {Gugercin, Serkan and Polyuga, Rostyslav V. and Beattie, Christopher and van der Schaft, Arjan},
  year = {2012},
  journal = {Automatica J. IFAC},
  volume = {48},
  number = {9},
  pages = {1963--1974},
  doi = {10.1016/j.automatica.2012.05.052}
}

@incollection{GS21,
	author = {Grivet-Talocia, Stefano and Silveira, Luis},
	year = {2021},
	pages = {139--180},
	title = {Post-processing methods for passivity enforcement},
	booktitle = {Model Order Reduction: Volume 1 -- System- and Data-Driven Methods and Algorithms},
	editor = {Peter Benner and Stefano Grivet-Talocia and Alfio Quarteroni and Gianluigi Rozza and Wil Schilders and Luís Miguel Silveira},
	publisher = {De Gruyter},
	address = {Berlin, Boston},
	doi = {10.1515/9783110498967-005},
}

@article{HNSU25,
  title = {Energy {{Matching}} in {{Reduced Passive}} and {{Port-Hamiltonian Systems}}},
  author = {Holicki, Tobias and Nicodemus, Jonas and Schwerdtner, Paul and Unger, Benjamin},
  year = {2025},
  journal = {SIAM J. Control Optim.},
  volume = {63},
  number = {3},
  pages = {2154--2176},
  doi = {10.1137/23M1600931}
}

@article{MNU23,
  title = {Port-{{Hamiltonian Dynamic Mode Decomposition}}},
  author = {Morandin, Riccardo and Nicodemus, Jonas and Unger, Benjamin},
  year = {2023},
  journal = {SIAM J. Sci. Comput.},
  volume = {45},
  number = {4},
  pages = {A1690--A1710},
  doi = {10.1137/22M149329X}
}

@article{NVGU25,
  title = {{{KLAP}}: {{KYP}} Lemma Based Low-Rank Approximation for $\mathcal{H}_2$-Optimal Passivation},
  author = {Nicodemus, Jonas and Voigt, Matthias and Gugercin, Serkan and Unger, Benjamin},
  year = {2025},
  journal = {ArXiv e-print 2501.05178},
  doi = {10.48550/arXiv.2501.05178},
}

@article{PW16,
  title = {Data-Driven Operator Inference for Nonintrusive Projection-Based Model Reduction},
  author = {Peherstorfer, Benjamin and Willcox, Karen},
  year = {2016},
  journal = {Computer Methods in Applied Mechanics and Engineering},
  volume = {306},
  pages = {196--215},
  doi = {10.1016/j.cma.2016.03.025}
}

GitHub Events

Total
  • Issue comment event: 1
  • Push event: 4
  • Create event: 3
  • Commit comment event: 1
Last Year
  • Issue comment event: 1
  • Push event: 4
  • Create event: 3
  • Commit comment event: 1

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 1
  • Total pull requests: 0
  • Average time to close issues: less than a minute
  • Average time to close pull requests: N/A
  • Total issue authors: 1
  • Total pull request authors: 0
  • Average comments per issue: 1.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: less than a minute
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 1.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • JuliaTagBot (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • julia 2 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 1
juliahub.com: PortHamiltonianModelReduction

Model reduction for port-Hamiltonian and passive systems in Julia

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 2 Total
Rankings
Dependent repos count: 8.2%
Average: 21.8%
Dependent packages count: 35.3%
Last synced: 7 months ago

Dependencies

.github/workflows/CI.yml actions
  • actions/checkout v4 composite
  • codecov/codecov-action v5 composite
  • julia-actions/cache v2 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-docdeploy v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v2 composite
.github/workflows/CompatHelper.yml actions
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite