Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
934f800
initialize CI Regressiontesting with pull_request_target-trigger
MatthiasBSchaefer Apr 16, 2026
605a4b0
Add Spaces in Sources.mo
MatthiasBSchaefer Apr 16, 2026
955b928
add some more spaces to sources.mo
MatthiasBSchaefer Apr 21, 2026
80350db
more and more spaces in Sources.mo
MatthiasBSchaefer Apr 21, 2026
29c2ecb
Spaces, Spaces and Spaces in Sources.mo
MatthiasBSchaefer Apr 22, 2026
dc7fb8a
add some spaces in Continuous.mo
MatthiasBSchaefer May 8, 2026
18ce2b6
add more spaces in Modelica.Blocks.Sources.mo
MatthiasBSchaefer May 8, 2026
cbbb95f
Add spaces in Modelica.Blocks.Sources.mo
MatthiasBSchaefer Jun 12, 2026
5f0c597
Add spaces in Modelica.Blocks.Sources.mo
MatthiasBSchaefer Jun 12, 2026
52f0c08
Add spaces in Modelica.Blocks.Sources.mo
MatthiasBSchaefer Jun 12, 2026
17efc51
Add spaces in Modelica.Blocks.Sources.mo
MatthiasBSchaefer Jun 12, 2026
2952971
There cant be enough spaces !
MatthiasBSchaefer Jun 15, 2026
fd999c4
There cant be enough spaces !
MatthiasBSchaefer Jun 15, 2026
641216c
There cant be enough spaces !
MatthiasBSchaefer Jun 15, 2026
9cd633b
There cant be enough spaces !
MatthiasBSchaefer Jun 15, 2026
669f010
There cant be enough spaces !
MatthiasBSchaefer Jun 15, 2026
44acc1f
There cant be enough spaces !
MatthiasBSchaefer Jun 15, 2026
1e8eef3
There cant be enough spaces !
MatthiasBSchaefer Jun 15, 2026
510e21d
More and more spaces in Modelica.Blocks.Sources.mo
MatthiasBSchaefer Jun 16, 2026
b7015d9
More and more spaces in Modelica.Blocks.Sources.mo
MatthiasBSchaefer Jun 16, 2026
bb988b1
i need space !
MatthiasBSchaefer Jun 17, 2026
7b698e4
i need space !
MatthiasBSchaefer Jun 17, 2026
bf5a014
space, space and more spaces
MatthiasBSchaefer Jun 18, 2026
8b27ee1
more spaces !
MatthiasBSchaefer Jun 18, 2026
5ad487e
spaaaaaace!
MatthiasBSchaefer Jun 19, 2026
fa1fdc9
spaaaaaace!
MatthiasBSchaefer Jun 19, 2026
451aaf8
Do you find any spaces?
MatthiasBSchaefer Jun 22, 2026
973112d
The eternal space history ...
MatthiasBSchaefer Jun 25, 2026
4e2c5a5
The eternal space history ...
MatthiasBSchaefer Jun 25, 2026
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
7 changes: 7 additions & 0 deletions .CI/ReSim/prepare_pr.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
event_number=$1
# checkout the pull request
docker run --name compile_msl --rm --volume shared_data:/shared_data wsm_image /shared_data/run_scripts/git_pr_pull.sh $event_number
# compile msl binaries
docker run --name compile_msl --rm --volume shared_data:/shared_data wsm_image /shared_data/run_scripts/compile_msl.sh /shared_data/repos/pr_testing/ModelicaStandardLibrary
# delete old PRs with same number (in case of a new commit on a PR)
docker run --name compile_msl --rm --volume shared_data:/shared_data dymola_image /shared_data/run_scripts/delete_old_PRs.sh $event_number
33 changes: 33 additions & 0 deletions .CI/ReSim/run_pr.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
event_number=$1
master_hash=$2
pkg_name=$3

# Run Modelica in all tools
tools=$4

for tool in $tools
do
uppertool=$tool | tr 'a-z' 'A-Z'
docker run --rm --name $tool\_pr_compare_$event_number\_$pkg_name --volume shared_data:/shared_data $tool\_image python /shared_data/run_scripts/$uppertool\_PR_compare.py $master_hash $event_number $pkg_name
done

#docker run --rm --name dymola_pr_compare_$event_number\_$pkg_name --volume shared_data:/shared_data dymola_image python /shared_data/run_scripts/Dymola_PR_compare.py $master_hash $event_number $pkg_name
#docker run --rm --name om_pr_compare_$event_number\_$pkg_name --volume shared_data:/shared_data om_image python /shared_data/run_scripts/OM_PR_compare.py $master_hash $event_number $pkg_name
#docker run --rm --name wsm_pr_compare_$event_number\_$pkg_name --volume shared_data:/shared_data wsm_image python /shared_data/run_scripts/WSM_PR_compare.py $master_hash $event_number $pkg_name

# create an overview over all tools
docker run --name create_overview_$event_number\_$pkg_name --volume shared_data:/shared_data om_image python /shared_data/run_scripts/overview_report.py $event_number $pkg_name

# clear published directory (web server)
if [ -d "/var/www/html/prs/$event_number/$pkg_name" ]; then
rm -rf "/var/www/html/prs/$event_number/$pkg_name"
fi
if [ ! -d "/var/www/html/prs/$event_number" ]; then
mkdir /var/www/html/prs/$event_number
fi
mkdir /var/www/html/prs/$event_number/$pkg_name

# copy data to webserver directory
docker cp create_overview_$event_number\_$pkg_name:/shared_data/resim_output/PRs/PR_$event_number/$pkg_name/report /var/www/html/prs/$event_number/$pkg_name
docker rm create_overview_$event_number\_$pkg_name
exit $(head -n 1 /var/www/html/prs/$event_number/$pkg_name/status.txt)
43 changes: 43 additions & 0 deletions .github/workflows/ReSim_CI.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: CI ReSim

on:
pull_request_target:
workflow_dispatch:

env:
PR_SERVER: ${{ vars.LTX_PR_SERVER }}
TESTING_TOOLS: ${{ vars.LTX_TESTING_TOOLS }}
EVENT_NUMBER: ${{ github.event.number }}
PR_SHA: ${{ github.event.pull_request.base.sha }}

jobs:
prepare:
runs-on: [ self-hosted, Linux, regression_testing ]
steps:
- uses: actions/checkout@v6
with:
sparse-checkout: './.CI/ReSim'

- name: Checkout code in docker
run: ./.CI/ReSim/prepare_pr.sh ${{ env.EVENT_NUMBER }}

testrun_modelica:
needs: prepare
runs-on: [ self-hosted, Linux, regression_testing ]
environment:
name: Report modelica
url: ${{ env.PR_SERVER }}/${{ env.EVENT_NUMBER }}/Modelica/report/PR_comparison_report.html
steps:
- name: Run tests modelica
run: ./.CI/ReSim/run_pr.sh ${{ env.EVENT_NUMBER }} ${{ env.PR_SHA }} Modelica ${{ env.TESTING_TOOLS }}


testrun_modelicatest:
needs: prepare
runs-on: [ self-hosted, Linux, regression_testing ]
environment:
name: Report modelicatest
url: ${{ env.PR_SERVER }}/${{ env.EVENT_NUMBER }}/ModelicaTest/report/PR_comparison_report.html
steps:
- name: Run tests modelicatest
run: ./.CI/ReSim/run_pr.sh ${{ env.EVENT_NUMBER }} ${{ env.PR_SHA }} ModelicaTest ${{ env.TESTING_TOOLS }}
2 changes: 1 addition & 1 deletion Modelica/Blocks/Continuous.mo
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ package Continuous "Library of continuous control blocks with internal states"
parameter Init initType=Init.InitialState
"Type of initialization (1: no init, 2: steady state, 3,4: initial output)" annotation(Evaluate=true,
Dialog(group="Initialization"));
parameter Real y_start=0 "Initial or guess value of output (= state)"
parameter Real y_start = 0 "Initial or guess value of output (= state)"
annotation (Dialog(group="Initialization"));
extends Interfaces.SISO;
Modelica.Blocks.Interfaces.BooleanInput reset if use_reset "Optional connector of reset signal" annotation(Placement(
Expand Down
54 changes: 27 additions & 27 deletions Modelica/Blocks/Sources.mo
Original file line number Diff line number Diff line change
Expand Up @@ -1589,73 +1589,73 @@ parameter Real table[:, <strong>2</strong>]=[0, 0; 1, 1; 2, 4];
"Table look-up with respect to time and various interpolation and extrapolation methods (data from matrix/file)"
import Modelica.Blocks.Tables.Internal;
extends Modelica.Blocks.Interfaces.MO(final nout=max([size(columns, 1); size(offset, 1)]));
parameter Boolean tableOnFile=false
parameter Boolean tableOnFile = false
"= true, if table is defined on file or in function usertab"
annotation (Dialog(group="Table data definition"));
annotation (Dialog(group= "Table data definition"));
parameter Real table[:, :] = fill(0.0, 0, 2)
"Table matrix (time = first column; e.g., table=[0, 0; 1, 1; 2, 4])"
annotation (Dialog(group="Table data definition",enable=not tableOnFile));
parameter String tableName="NoName"
annotation (Dialog(group="Table data definition",enable = not tableOnFile));
parameter String tableName= "NoName"
"Table name on file or in function usertab (see docu)"
annotation (Dialog(group="Table data definition",enable=tableOnFile));
parameter String fileName="NoName" "File where matrix is stored"
annotation (Dialog(group= "Table data definition", enable = tableOnFile));
parameter String fileName = "NoName" "File where matrix is stored"
annotation (Dialog(
group="Table data definition",
enable=tableOnFile,
loadSelector(filter="Text files (*.txt);;MATLAB MAT-files (*.mat);;Comma-separated values files (*.csv)",
caption="Open file in which table is present")));
parameter String delimiter="," "Column delimiter character for CSV file"
annotation (Dialog(
group="Table data definition",
enable=tableOnFile and isCsvExt),
choices(choice=" " "Blank", choice="," "Comma", choice="\t" "Horizontal tabulator", choice=";" "Semicolon"));
group = "Table data definition",
enable = tableOnFile and isCsvExt),
choices(choice=" " "Blank", choice= "," "Comma" , choice="\t" "Horizontal tabulator", choice=";" "Semicolon"));
parameter Integer nHeaderLines=0 "Number of header lines to ignore for CSV file"
annotation (Dialog(group="Table data definition",enable=tableOnFile and isCsvExt));
annotation (Dialog(group="Table data definition",enable = tableOnFile and isCsvExt));
parameter Boolean verboseRead=true
"= true, if info message that file is loading is to be printed"
annotation (Dialog(group="Table data definition",enable=tableOnFile));
annotation (Dialog(group="Table data definition",enable = tableOnFile));
parameter Integer columns[:]=2:size(table, 2)
"Columns of table to be interpolated"
annotation (Dialog(group="Table data interpretation",
groupImage="modelica://Modelica/Resources/Images/Blocks/Sources/CombiTimeTable.png"));
parameter Modelica.Blocks.Types.Smoothness smoothness=Modelica.Blocks.Types.Smoothness.LinearSegments
parameter Modelica.Blocks.Types.Smoothness smoothness = Modelica.Blocks.Types.Smoothness.LinearSegments
"Smoothness of table interpolation"
annotation (Dialog(group="Table data interpretation"));
parameter Modelica.Blocks.Types.Extrapolation extrapolation=Modelica.Blocks.Types.Extrapolation.LastTwoPoints
parameter Modelica.Blocks.Types.Extrapolation extrapolation = Modelica.Blocks.Types.Extrapolation.LastTwoPoints
"Extrapolation of data outside the definition range"
annotation (Dialog(group="Table data interpretation"));
parameter SI.Time timeScale(
min=Modelica.Constants.eps)=1 "Time scale of first table column"
min=Modelica.Constants.eps) = 1 "Time scale of first table column"
annotation (Dialog(group="Table data interpretation"), Evaluate=true);
parameter Real offset[:]={0} "Offsets of output signals"
parameter Real offset[:] = {0} "Offsets of output signals"
annotation (Dialog(group="Table data interpretation"));
parameter SI.Time startTime=0
parameter SI.Time startTime = 0
"Output = offset for time < startTime"
annotation (Dialog(group="Table data interpretation"));
parameter SI.Time shiftTime=startTime
parameter SI.Time shiftTime = startTime
"Shift time of first table column"
annotation (Dialog(group="Table data interpretation"));
parameter Modelica.Blocks.Types.TimeEvents timeEvents=Modelica.Blocks.Types.TimeEvents.Always
parameter Modelica.Blocks.Types.TimeEvents timeEvents = Modelica.Blocks.Types.TimeEvents.Always
"Time event handling of table interpolation"
annotation (Dialog(group="Table data interpretation", enable=smoothness == Modelica.Blocks.Types.Smoothness.LinearSegments));
parameter Boolean verboseExtrapolation=false
annotation (Dialog(group="Table data interpretation", enable = smoothness == Modelica.Blocks.Types.Smoothness.LinearSegments));
parameter Boolean verboseExtrapolation = false
"= true, if warning messages are to be printed if time is outside the table definition range"
annotation (Dialog(group="Table data interpretation", enable=extrapolation == Modelica.Blocks.Types.Extrapolation.LastTwoPoints or extrapolation == Modelica.Blocks.Types.Extrapolation.HoldLastPoint));
final parameter SI.Time t_min=t_minScaled*timeScale
final parameter SI.Time t_min = t_minScaled * timeScale
"Minimum abscissa value defined in table";
final parameter SI.Time t_max=t_maxScaled*timeScale
final parameter SI.Time t_max = t_maxScaled * timeScale
"Maximum abscissa value defined in table";
final parameter Real t_minScaled=Internal.getTimeTableTmin(tableID)
final parameter Real t_minScaled = Internal.getTimeTableTmin(tableID)
"Minimum (scaled) abscissa value defined in table";
final parameter Real t_maxScaled=Internal.getTimeTableTmax(tableID)
final parameter Real t_maxScaled = Internal.getTimeTableTmax(tableID)
"Maximum (scaled) abscissa value defined in table";
protected
final parameter Real p_offset[nout]=(if size(offset, 1) == 1 then ones(nout)*offset[1] else offset)
final parameter Real p_offset[nout] = (if size(offset, 1) == 1 then ones(nout)*offset[1] else offset)
"Offsets of output signals";
parameter Modelica.Blocks.Types.ExternalCombiTimeTable tableID=
parameter Modelica.Blocks.Types.ExternalCombiTimeTable tableID =
Modelica.Blocks.Types.ExternalCombiTimeTable(
if tableOnFile then if isCsvExt then "Values" else tableName else "NoName",
if tableOnFile and fileName <> "NoName" and not Modelica.Utilities.Strings.isEmpty(fileName) then fileName else "NoName",
if tableOnFile and fileName <> "NoName" and not Modelica.Utilities.Strings.isEmpty(fileName) then fileName else "NoName",
table,
startTime/timeScale,
columns,
Expand Down
Loading