Skip to content

Commit

Permalink
moved docs from FMIImport&Core into FMI.jl (#204)
Browse files Browse the repository at this point in the history
* added FMIImport doc to FMI.jl

* doc fixes

* fixes for doc

* doc improvements, doc structure finalized

* added many functions to doc-manual

* added all funcs to doc manual

* doc fixes

* doc fixes

* fixed typo

* Update Documentation.yml to use julia 1.9

* docs for FMI_exten according to format & docfixes

* fixed docs for nonFMI spec fucs & notes to plot funcs

* fixed bad links in doc + export addtional fmifuncs

* removed Manifest.toml from docs env

* doc updates for comp_wraps

* doc updates for sim

* added deprecated flags

* typo fixes

* fixes

* doc fixes

* doc fixes for merge

* minor doc fixes (link check)

* fixed fmi2SimulateCS wrapper

* documentation action uses PR-repo-state

* fix for Example action
  • Loading branch information
0815Creeper authored Nov 21, 2023
1 parent 7b29861 commit 3bedc81
Show file tree
Hide file tree
Showing 31 changed files with 1,809 additions and 967 deletions.
4 changes: 1 addition & 3 deletions .github/workflows/Documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,11 @@ jobs:
steps:
- name: "Check out repository"
uses: actions/checkout@v3
with:
ref: main

- name: "Set up Julia"
uses: julia-actions/setup-julia@v1
with:
version: '1.6'
version: '1.9'
arch: x64

- name: "Copy examples, readme"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/Example.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
matrix:
os: [windows-latest] # ubuntu-latest
file-name: [manipulation, modelica_conference_2021, multiple_instances, multiprocessing, multithreading, parameterize, simulate, parameter_optimization]
julia-version: ['1.9']
julia-version: ['1.8']
julia-arch: [x64]
experimental: [false]

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# FMI.jl

## What is FMI.jl?
[*FMI.jl*](https://github.com/ThummeTo/FMI.jl) is a free-to-use software library for the Julia programming language which integrates the **F**unctional **M**ock-Up **I**nterface ([fmi-standard.org](http://fmi-standard.org/)): load or create, parameterize, differentiate, simulate and plot FMUs seamlessly inside the Julia programming language!
[*FMI.jl*](https://github.com/ThummeTo/FMI.jl) is a free-to-use software library for the Julia programming language which integrates the **F**unctional **M**ock-Up **I**nterface ([fmi-standard.org](https://fmi-standard.org/)): load or create, parameterize, differentiate, simulate and plot FMUs seamlessly inside the Julia programming language!

[![Dev Docs](https://img.shields.io/badge/docs-dev-blue.svg)](https://ThummeTo.github.io/FMI.jl/dev)
[![Test (latest)](https://github.com/ThummeTo/FMI.jl/actions/workflows/TestLatest.yml/badge.svg)](https://github.com/ThummeTo/FMI.jl/actions/workflows/TestLatest.yml)
Expand Down Expand Up @@ -106,7 +106,7 @@ Tobias Thummerer, Johannes Tintenherr, Lars Mikelsons. 2021 **Hybrid modeling of
## Notes for contributors
Contributors are welcome. Before contributing, please read, understand and follow the [Contributor's Guide on Collaborative Practices for Community Packages](https://github.com/SciML/ColPrac).
During development of new implementations or optimizations on exisitng code, one will have to make design decissions that influence the library performance and usability. The following priorization should be the basis for decision-making:
- **#1 Compliance with standard:** It is the highest priority to be compliant with the FMI standard ([fmi-standard.org](http://fmi-standard.org/)). Identifiers described in the standard must be used. Topologies should follow the specification as far as the possibilities of the Julia programming language allows.
- **#1 Compliance with standard:** It is the highest priority to be compliant with the FMI standard ([fmi-standard.org](https://fmi-standard.org/)). Identifiers described in the standard must be used. Topologies should follow the specification as far as the possibilities of the Julia programming language allows.
- **#2 Performance:** Because [*FMI.jl*](https://github.com/ThummeTo/FMI.jl) is a simulation tool, performance is very important. This applies to the efficient use of CPU and GPU, but also the conscientious use of RAM and disc space.
- **#3 Usability:** The library should be as usable as possible, as long as being fully compliant with the FMI standard.

Expand Down
99 changes: 0 additions & 99 deletions docs/Manifest.toml

This file was deleted.

7 changes: 7 additions & 0 deletions docs/Project.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
[deps]
CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
FMICore = "8af89139-c281-408e-bce2-3005eb87462f"
FMIImport = "9fcbc62e-52a0-44e9-a616-1359a0008194"
JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819"
MAT = "23992714-dd62-5051-b70f-ba57cb901cac"
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"

[compat]
julia = "1.6"
29 changes: 23 additions & 6 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,21 @@
# Licensed under the MIT license. See LICENSE file in the project root for details.
#

using Documenter, FMI
import Pkg; Pkg.develop(path=joinpath(@__DIR__,"../../FMI.jl"))
using Documenter, Plots, JLD2, DataFrames, CSV, MAT, FMI, FMIImport, FMICore
using Documenter: GitHubActions

makedocs(sitename="FMI.jl",
format = Documenter.HTML(
collapselevel = 1,
sidebar_sitename = false,
edit_link = nothing
edit_link = nothing,
size_threshold_ignore = ["library.md","deprecated.md","fmi2_lowlevel_librarys.md","fmi3_lowlevel_librarys.md"]
),
modules = [FMI, FMIImport, FMICore],
checkdocs=:exports,
linkcheck=true,
linkcheck_ignore=["https://thummeto.github.io/FMI.jl/dev/examples/inputs/", "https://github.com/ThummeTo/FMICore.jl/blob/main/src/FMI2_c.jl#L718"],
pages= Any[
"Introduction" => "index.md"
"Features" => "features.md"
Expand All @@ -26,12 +32,23 @@ makedocs(sitename="FMI.jl",
"Multithreading" => "examples/multithreading.md"
"Multiprocessing" => "examples/multiprocessing.md"
]
"Library Functions" => "library.md"
"FMI Tool Information" => "fmi-tool-info.md"
"User Level API - FMI.jl" => "library.md"
"Developer Level API" => Any[
"fmi version independent content" => Any[
"fmi_lowlevel_library_types.md",
"fmi_lowlevel_library_constants.md",
"fmi_lowlevel_library_functions.md"
],
"FMI2 specific content" => "fmi2_lowlevel_librarys.md",
"FMI3 specific content" => "fmi3_lowlevel_librarys.md"
]
"API Index" => "index_library.md"
"FMI Tool Information" => "fmi-tool-info.md"
"Related Publication" => "related.md"
"Contents" => "contents.md"
]
)
hide("Deprecated" => "deprecated.md")
]
)

function deployConfig()
github_repository = get(ENV, "GITHUB_REPOSITORY", "")
Expand Down
56 changes: 56 additions & 0 deletions docs/src/deprecated.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# deprecated Functions

this doc page is necessary as all exported functions must be documented in the manual with documenter configred to check for missing documentation, therefor this hidden page exists

### internal funtions: remove export?
```@docs
fmi2CallbackLogger
fmi2CallbackAllocateMemory
fmi2CallbackFreeMemory
fmi3CallbackLogger
fmi2CallbackFunctions
fmi2CallbackStepFinished
```

### deprecated
Mostly wrappers that are not supposed to be used (call specific wrapped functions instead)

```@docs
fmiSetReal
fmiReset
fmiGetGenerationTool
fmiEnterContinuousTimeMode
fmiGetEventIndicators
fmiSetBoolean
fmiFreeInstance!
fmiInstantiate!
fmiTerminate
fmiDoStep
fmiSetInteger
fmiCompletedIntegratorStep
fmiExitInitializationMode
fmiSetupExperiment
fmiSetDebugLogging
fmiSerializedFMUstateSize
fmiSerializeFMUstate
fmiDeSerializeFMUstate
fmiEnterInitializationMode
fmiGetDirectionalDerivative!
fmiNewDiscreteStates
fmiGetDirectionalDerivative
fmiSetRealInputDerivatives
fmiGetGenerationDateAndTime
fmiGetContinuousStates
fmiSetContinuousStates
fmiGetNominalsOfContinuousStates
fmiSetTime
fmiSetString
fmiGetString
fmiGetString!
fmiGetInteger
fmiGetInteger!
fmiGetReal
fmiGetReal!
fmiGetBoolean
fmiGetBoolean!
```
2 changes: 1 addition & 1 deletion docs/src/features.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

# Features
Please note, that this guide focuses also on users, that are not familiar with FMI. The following feature explanations are written in an easy-to-read-fashion, so there might be some points that are scientifically only 95% correct. For further information on FMI and FMUs, see [fmi-standard.org](http://fmi-standard.org/).
Please note, that this guide focuses also on users, that are not familiar with FMI. The following feature explanations are written in an easy-to-read-fashion, so there might be some points that are scientifically only 95% correct. For further information on FMI and FMUs, see [fmi-standard.org](https://fmi-standard.org/).

## Execution Configuration
Not all FMUs support all features they should according to the FMI-standard, so *FMI.jl* provides a so called *execution configuration*.
Expand Down
Loading

0 comments on commit 3bedc81

Please sign in to comment.