Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create OLF Knitro AC solver extension #1

Merged
merged 59 commits into from
Dec 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
70a35be
OLF knitro solver extension
jeanneArchambault Nov 28, 2024
4ba4d36
Add target in gitignore
jeanneArchambault Nov 29, 2024
5bc4874
remove target folder
jeandemanged Nov 29, 2024
d4e63dc
checkstyle fix
jeandemanged Nov 29, 2024
2b8c66d
add logback-test
jeandemanged Nov 29, 2024
6c52e31
move to package com.powsybl.openloadflow.knitro.solver
jeandemanged Nov 29, 2024
3fa44e9
clean
jeandemanged Nov 29, 2024
5615319
clean
jeandemanged Nov 29, 2024
09ebcce
add PowsyblOpenLoadFlowKnitroSolverVersion
jeandemanged Nov 29, 2024
b708bca
rename ExternalSolverExtensionParameters to KnitroLoadFlowParameters
jeandemanged Nov 29, 2024
41b51e4
maven wrapper and CI
jeandemanged Nov 29, 2024
0d96433
fix mvnw permissions
jeandemanged Nov 29, 2024
35d25e2
delete unused test class
jeandemanged Nov 29, 2024
34b1f48
0.1.0-snapshot
jeandemanged Nov 29, 2024
5761e01
workaround kn finalization issue
jeandemanged Dec 3, 2024
1031f8d
fix
jeandemanged Dec 3, 2024
50e315f
Clean
jeanneArchambault Dec 4, 2024
9839a31
fix
jeandemanged Dec 4, 2024
796a887
Add CI
jeandemanged Dec 4, 2024
c6591ae
sonar cloud
jeandemanged Dec 4, 2024
57500a2
Add README.md
jeanneArchambault Dec 4, 2024
6542e0a
Merge branch 'init' of https://github.com/powsybl/powsybl-open-loadfl…
jeanneArchambault Dec 4, 2024
5e3b909
powsybl-core 6.6.0-RC1
jeandemanged Dec 5, 2024
67073a0
olf main branch
jeandemanged Dec 5, 2024
7628441
Update README file with installation/Setup instructions
jeanneArchambault Dec 5, 2024
39ced36
Merge branch 'init' of https://github.com/powsybl/powsybl-open-loadfl…
jeanneArchambault Dec 5, 2024
325c3fa
Delete useless class for knitro stopping criteria
jeanneArchambault Dec 11, 2024
2f0491f
Update knitro-interfaces version
jeanneArchambault Dec 11, 2024
23e0a0c
Clean
jeanneArchambault Dec 11, 2024
8f91034
Clean knitro
jeanneArchambault Dec 11, 2024
c486bba
Delete not usefull nonLinearConstraintsTypes list
jeanneArchambault Dec 11, 2024
acf66af
Clean
jeanneArchambault Dec 11, 2024
3190514
Clean
jeanneArchambault Dec 11, 2024
fca180f
FIXME CachingTest
jeanneArchambault Dec 11, 2024
35d1063
Clean
jeanneArchambault Dec 11, 2024
5b1509b
Clean
jeanneArchambault Dec 11, 2024
0cb79d2
Clean
jeanneArchambault Dec 11, 2024
893c86c
Bump to OLF v1.14.0 and password protect Knitro download (#3)
jeandemanged Dec 12, 2024
1cd8930
fix license header vs package ordering
jeandemanged Dec 12, 2024
dd0c0b9
use bridj from maven central + readme update
jeandemanged Dec 12, 2024
ef0a700
add LICENSE, gitignore update
jeandemanged Dec 12, 2024
5aa77c9
note on macOS
jeandemanged Dec 12, 2024
b3d8f75
note on knitro installation validation
jeandemanged Dec 13, 2024
040f12a
Add cron every 5 min (test)
jeanneArchambault Dec 13, 2024
b5c6fb4
Merge branch 'init' of https://github.com/powsybl/powsybl-open-loadfl…
jeanneArchambault Dec 13, 2024
8f80054
Solve sonarcloud issues
jeanneArchambault Dec 13, 2024
d60cb87
Add getter and setter for static field knitroParameters
jeanneArchambault Dec 13, 2024
ad4d31b
Delete useless equationId
jeanneArchambault Dec 13, 2024
156c4e1
Update pom
jeanneArchambault Dec 13, 2024
75153ee
Modify knitroParameters (make it non static + make it a parameter of …
jeanneArchambault Dec 13, 2024
f00d8f7
Revert "Update pom"
jeanneArchambault Dec 13, 2024
354b026
Add tests for knitroParameters
jeanneArchambault Dec 13, 2024
f507ddf
Delete cron + add test for Jacobian user routine + filter activated v…
jeanneArchambault Dec 13, 2024
e629bdd
Undo unvoluntary setting user routine
jeanneArchambault Dec 13, 2024
c900cb8
Modify gradient user routine test
jeanneArchambault Dec 13, 2024
ea4373d
better example Knitro output
jeandemanged Dec 13, 2024
5e81640
clean
jeandemanged Dec 13, 2024
b802754
clean
jeandemanged Dec 16, 2024
ed78aaf
clean
jeandemanged Dec 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 79 additions & 0 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: CI

on:
push:
branches:
- 'main'
- 'release-v**'
- 'full-sonar-analysis-**'
pull_request:

jobs:
build:
name: Build OS ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest] # macos-latest : Knitro does not yet support Java API on macOS, to be tried later on

steps:
- name: Install Knitro (Linux)
if: matrix.os == 'ubuntu-latest'
run: |
wget -nv -O knitro.tar.gz --user "$KNITRO_DOWNLOAD_USER" --password "$KNITRO_DOWNLOAD_PASSWORD" "$KNITRO_LINUX_URL"
mkdir -p $RUNNER_TEMP/knitro
tar xzf knitro.tar.gz -C $RUNNER_TEMP/knitro
echo "KNITRODIR=$RUNNER_TEMP/knitro/knitro-14.1.0-Linux64" >> "$GITHUB_ENV"
env:
KNITRO_DOWNLOAD_USER: ${{ secrets.KNITRO_DOWNLOAD_USER }}
KNITRO_DOWNLOAD_PASSWORD: ${{ secrets.KNITRO_DOWNLOAD_PASSWORD }}
KNITRO_LINUX_URL: ${{ secrets.KNITRO_LINUX_URL }}

- name: Install Knitro (Windows)
if: matrix.os == 'windows-latest'
shell: powershell
run: |
C:\msys64\usr\bin\wget.exe -nv -O knitro.zip --user "$env:KNITRO_DOWNLOAD_USER" --password "$env:KNITRO_DOWNLOAD_PASSWORD" "$env:KNITRO_WINDOWS_URL"
7z x -y knitro.zip -oC:\knitro
echo "KNITRODIR=C:\knitro\knitro-14.1.0-Win64" >> "$env:GITHUB_ENV"
env:
KNITRO_DOWNLOAD_USER: ${{ secrets.KNITRO_DOWNLOAD_USER }}
KNITRO_DOWNLOAD_PASSWORD: ${{ secrets.KNITRO_DOWNLOAD_PASSWORD }}
KNITRO_WINDOWS_URL: ${{ secrets.KNITRO_WINDOWS_URL }}

- name: Checkout sources
uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'

- name: Build with Maven (Ubuntu)
if: matrix.os != 'windows-latest'
run: |
./mvnw install:install-file -Dfile="$KNITRODIR/examples/Java/lib/Knitro-Interfaces-2.5-KN_14.1.0.jar" -DgroupId=com.artelys -DartifactId=knitro-interfaces -Dversion=14.1.0 -Dpackaging=jar -DgeneratePom=true
./mvnw --batch-mode -Pjacoco install
env:
ARTELYS_LICENSE: ${{ secrets.ARTELYS_LICENSE }}

- name: Build with Maven (Windows)
if: matrix.os == 'windows-latest'
run: |
call mvnw.cmd install:install-file -Dfile="%KNITRODIR%\examples\Java\lib\Knitro-Interfaces-2.5-KN_14.1.0.jar" -DgroupId=com.artelys -DartifactId=knitro-interfaces -Dversion=14.1.0 -Dpackaging=jar -DgeneratePom=true
mvnw.cmd --batch-mode install
shell: cmd
env:
ARTELYS_LICENSE: ${{ secrets.ARTELYS_LICENSE }}

- name: Run SonarCloud analysis
if: matrix.os == 'ubuntu-latest'
run: >
./mvnw --batch-mode -DskipTests sonar:sonar
-Dsonar.host.url=https://sonarcloud.io
-Dsonar.organization=powsybl-ci-github
-Dsonar.projectKey=com.powsybl:powsybl-open-loadflow-knitro-solver
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
20 changes: 20 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Maven projects
target/

# IntelliJ
/.idea
*.iml

# Eclipse projects
.classpath
.project
org.eclipse.core.resources.prefs
org.eclipse.jdt.core.prefs
org.eclipse.m2e.core.prefs
org.eclipse.jdt.groovy.core.prefs

# Maven wrapper jar
.mvn/wrapper/*.jar

# Generated readthedocs pages
build-docs/
24 changes: 24 additions & 0 deletions .mvn/wrapper/maven-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.


distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.3/apache-maven-3.9.3-bin.zip
distributionSha256Sum=80b3b63df0e40ca8cde902bb1a40e4488ede24b3f282bd7bd6fba8eb5a7e055c

# Beware: wrapperUrl must not be set! It prevents the "MVNW_REPOURL" envvar to work when downloading maven-wrapper
# SHA-256 of maven-wrapper-3.2.0.jar:
wrapperSha256Sum=e63a53cfb9c4d291ebe3c2b0edacb7622bbc480326beaa5a0456e412f52f066a
Loading
Loading