Skip to content

Commit

Permalink
Merge branch 'main' of https://github.com/PeriHub/PeriLab.j
Browse files Browse the repository at this point in the history
  • Loading branch information
CWillberg committed Mar 25, 2024
2 parents 26d6989 + 538821a commit 0c15a76
Show file tree
Hide file tree
Showing 73 changed files with 2,139 additions and 646 deletions.
8 changes: 3 additions & 5 deletions .github/workflows/TagBot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,7 @@ jobs:
- uses: JuliaRegistries/TagBot@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
# Edit the following line to reflect the actual name of the GitHub Secret containing your private key
ssh: ${{ secrets.DOCUMENTER_KEY }}
# ssh: ${{ secrets.NAME_OF_MY_SSH_PRIVATE_KEY_SECRET }}
DockerHub:
if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot'
runs-on: ubuntu-latest
Expand All @@ -50,10 +48,10 @@ jobs:
id: get_version
run: echo "PERILAB_VERSION=$(awk -F'"' '/version/{print $2}' Project.toml)" >> $GITHUB_OUTPUT
- name: Build Docker image
run: docker build -t perihub/perilab:$PERILAB_VERSION .
run: docker build -t perihub/perilab:${{ steps.get_version.outputs.PERILAB_VERSION }} .
- name: Publish to Registry
run: docker push perihub/perilab:$PERILAB_VERSION
run: docker push perihub/perilab:${{ steps.get_version.outputs.PERILAB_VERSION }}
- name: Retag latest
run: docker tag perihub/perilab:$PERILAB_VERSION perihub/perilab:latest
run: docker tag perihub/perilab:${{ steps.get_version.outputs.PERILAB_VERSION }} perihub/perilab:latest
- name: Publish to Registry
run: docker push perihub/perilab:latest
2 changes: 1 addition & 1 deletion .reuse/dep5
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: PeriLab
Upstream-Contact: Christian Willberg <christian.willberg@dlr.de>, Jan-Timo Hesse <jan-timo.hesse@dlr.de>
Source: https://gitlab.com/dlr-perihub/perilab
Source: https://github.com/PeriHub/PeriLab.jl

# Sample paragraph, commented out:
#
Expand Down
12 changes: 9 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ SPDX-License-Identifier: BSD-3-Clause

All notable changes to this project will be documented in this file.

## [1.1.2] - 2024-03-25

### Fixed

- Abaqus surface extension

## [1.1.1] - 2024-03-21

### Fixed
Expand Down Expand Up @@ -137,6 +143,6 @@ All notable changes to this project will be documented in this file.

- First full PeriLab release

[1.0.2]: https://gitlab.com/dlr-perihub/PeriLab.jl/-/compare/v1.0.1...v1.0.2
[1.0.1]: https://gitlab.com/dlr-perihub/PeriLab.jl/-/compare/v1.0.0...v1.0.1
[1.0.0]: https://gitlab.com/dlr-perihub/PeriLab.jl/-/tags/v1.0.0
[1.0.2]: https://github.com/PeriHub/PeriLab.jl/-/compare/v1.0.1...v1.0.2
[1.0.1]: https://github.com/PeriHub/PeriLab.jl/-/compare/v1.0.0...v1.0.1
[1.0.0]: https://github.com/PeriHub/PeriLab.jl/-/tags/v1.0.0
4 changes: 2 additions & 2 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "PeriLab"
uuid = "2ecefcea-59f0-46dd-9cfd-1d2b8cc5f112"
authors = ["Christian Willberg <christian.willberg@dlr.de>", "Jan-Timo Hesse <jan-timo.hesse@dlr.de>"]
version = "1.1.1"
version = "1.1.2"

[deps]
AbaqusReader = "bc6b9049-e460-56d6-94b4-a597b2c0390d"
Expand Down Expand Up @@ -42,7 +42,7 @@ CSV = "^0.10"
DataFrames = "^1"
Dates = "^1"
Dierckx = "^0.5"
Exodus = "^0.11, 0.13"
Exodus = "^0.12"
FastGaussQuadrature = "^1"
JSON3 = "^1"
LibGit2 = "^1"
Expand Down
23 changes: 12 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ SPDX-License-Identifier: BSD-3-Clause
Welcome to `PeriLab`, a powerful software solution designed for tackling Peridynamic problems.

<p align="center" style="font-size:0;"><!--
PeriLab_crack --><img align="middle" src="https://gitlab.com/dlr-perihub/PeriLab.jl/-/raw/main/assets/PeriLab_crack.gif" width="50%"><!--
PeriLab_additive --><img align="middle" src="https://gitlab.com/dlr-perihub/PeriLab.jl/-/raw/main/assets/PeriLab_additive.gif" width="50%">
PeriLab_crack --><img align="middle" src="https://raw.githubusercontent.com/PeriHub/PeriLab.jl/main/assets/PeriLab_crack.gif" width="50%"><!--
PeriLab_additive --><img align="middle" src="https://raw.githubusercontent.com/PeriHub/PeriLab.jl/main/assets/PeriLab_additive.gif" width="50%">
</p>

## Documentation
Expand Down Expand Up @@ -79,17 +79,18 @@ using PeriLab
PeriLab.get_examples()
PeriLab.main("examples/DCB/DCBmodel.yaml")
```
>Note: More details about the main functionalities in the yaml input deck [here](https://gitlab.com/dlr-perihub/PeriLab.jl/-/blob/main/src/Support/Parameters/parameter_handling.jl?ref_type=heads).
>Note: More details about the main functionalities in the yaml input deck [here](https://github.com/PeriHub/PeriLab.jl/blob/main/src/Support/Parameters/parameter_handling.jl).
## Parallel Processing with `PeriLab` (MPI)

To handle large-scale problems efficiently, install [MPI](https://juliaparallel.org/MPI.jl/stable/usage/). Run PeriLab with two processors using the following commands:
To handle large-scale problems efficiently, install [MPI](https://juliaparallel.org/MPI.jl/stable/usage/). Run PeriLab with two processors on a **Linux** system using the following commands:

```sh
$ julia
julia> using MPI
julia> MPI.install_mpiexecjl()
```
>Note: If you work with **Windows 10 or higher** you can use the [WSL](https://learn.microsoft.com/en-us/windows/wsl/install) environment.
Run PeriLab with two processors:
```sh
Expand Down Expand Up @@ -122,7 +123,7 @@ Now, you've successfully installed PeriLab using the official Perihub/Perilab Do

## `PeriLab` on `JuliaHub`

Experience the convenience of using PeriLab as a ready-to-use application on JuliaHub. Simply create an [account](https://juliahub.com), navigate to the [applications page](https://juliahub.com/ui/Applications), and add the repository URL: https://gitlab.com/dlr-perihub/PeriLab.jl.
Experience the convenience of using PeriLab as a ready-to-use application on JuliaHub. Simply create an [account](https://juliahub.com), navigate to the [applications page](https://juliahub.com/ui/Applications), and add the repository URL: https://github.com/PeriHub/PeriLab.jl.

Configure advanced options, such as _filename_, _dryrun_, _verbosity_, _debug_, and _silence_. Click __Start__ and monitor the job progress. Results will be available in a zipped folder.

Expand Down Expand Up @@ -157,7 +158,7 @@ We welcome contributions in various forms, including bug reports, documentation
### Development
1. **Clone the repository:**
```sh
git clone https://gitlab.com/dlr-perihub/PeriLab.jl
git clone https://github.com/PeriHub/PeriLab.jl
cd PeriLab.jl
```
2. **Activate the environment and install dependencies:**
Expand All @@ -177,7 +178,7 @@ For any questions or inquiries about PeriLab.jl, feel free to reach out to the a

## Authors and acknowledgment

<a href="https://orcid.org/0000-0003-2433-9183"><img src="https://orcid.figshare.com/ndownloader/files/8439032/preview/8439032/preview.jpg" style="height:15px;width:auto;vertical-align: top;background-color:transparent;"> </a>[Dr.-Ing. Christian Willberg](mailto::christian.willberg@dlr.de)
<a href="https://orcid.org/0000-0003-2433-9183"><img src="https://orcid.figshare.com/ndownloader/files/8439032/preview/8439032/preview.jpg" style="height:15px;width:auto;vertical-align: top;background-color:transparent;"> </a>[Dr.-Ing. Christian Willberg](mailto::christian.willberg@h2.de)

<a href="https://orcid.org/0000-0002-3006-1520"><img src="https://orcid.figshare.com/ndownloader/files/8439032/preview/8439032/preview.jpg" style="height:15px;width:auto;vertical-align: top;background-color:transparent;"> [M.Sc. Jan-Timo Hesse](mailto::jan-timo.hesse@dlr.de)

Expand All @@ -203,7 +204,7 @@ For any questions or inquiries about PeriLab.jl, feel free to reach out to the a
## Partner

| <img src="https://gitlab.com/dlr-perihub/PeriLab.jl/-/raw/main/assets/dlr.jpg" height="200" title="German Aerospace Center"> | <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/Logo_h2.svg/1280px-Logo_h2.svg.png" height="200" title="Magdeburg-Stendal University of Applied Science"> |
| <img src="https://raw.githubusercontent.com/PeriHub/PeriLab.jl/main/assets/dlr.jpg" height="200" title="German Aerospace Center"> | <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/Logo_h2.svg/1280px-Logo_h2.svg.png" height="200" title="Magdeburg-Stendal University of Applied Science"> |
|:------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------------------:|
| [German Aerospace Center](http://www.dlr.de/sy) | [Magdeburg-Stendal University of Applied Science](http://www.h2.de) |

Expand All @@ -215,22 +216,22 @@ For any questions or inquiries about PeriLab.jl, feel free to reach out to the a

<p align="center" style="font-size:0;"><!--
<!--
DFG --><img align="middle" src="https://gitlab.com/dlr-perihub/PeriLab.jl/-/raw/main/assets/dfg.jpg" height="120">
DFG --><img align="middle" src="https://raw.githubusercontent.com/PeriHub/PeriLab.jl/main/assets/dfg.jpg" height="120">
</p>

This project has benefited from funding by the [Deutsche
Forschungsgemeinschaft](https://www.dfg.de/) (DFG, German Research Foundation)
through the following grant ''Gekoppelte Peridynamik-Finite-Elemente-Simulationen zur Schädigungsanalyse von Faserverbundstrukturen''. <br/><br/>Grant number: [WI 4835/5-1](https://gepris.dfg.de/gepris/projekt/456427423)
<p align="center" style="font-size:0;"><!--
SACHSEN --><img align="middle" src="https://gitlab.com/dlr-perihub/PeriLab.jl/-/raw/main/assets/sachsen.jpg" height="120">
SACHSEN --><img align="middle" src="https://raw.githubusercontent.com/PeriHub/PeriLab.jl/main/assets/sachsen.jpg" height="120">
</p>

[M-ERA.NET](https://www.m-era.net/) funded project ''Exploring Multi-Method Analysis of composite structures and joints under consideration of uncertainties engineering and processing (EMMA)''

This measure is co-financed with tax funds on the basis of the budget passed by the [Saxon state parlament](https://www.landtag.sachsen.de/de). <br/><br/>Grant number: [3028223](https://www.m-era.net/materipedia/2020/emma).

<p align="center" style="font-size:0;"><!--
HyTank --><img align="middle" src="https://gitlab.com/dlr-perihub/PeriLab.jl/-/raw/main/assets/hytank.jpg" height="120"><!--
HyTank --><img align="middle" src="https://raw.githubusercontent.com/PeriHub/PeriLab.jl/main/assets/hytank.jpg" height="120"><!--
-->
</p>

Expand Down
3 changes: 2 additions & 1 deletion bin/main.jl
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,9 @@ dryrun = get(ENV, "dryrun", "false") == "true"
verbose = get(ENV, "verbose", "false") == "true"
debug = get(ENV, "debug", "false") == "true"
silent = get(ENV, "silent", "false") == "true"
reload = get(ENV, "reload", "false") == "true"

PeriLab.main(filename, "./results", dryrun, verbose, debug, silent)
PeriLab.main(filename; output_dir="./results", dryrun=dryrun, verbose=verbose, debug=debug, silent=silent, reload=reload)

zip_filename = "results.zip"
zip_folder(output_dir, zip_filename)
Expand Down
5 changes: 3 additions & 2 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@ makedocs(
doctest=true,
checkdocs=:none, # :all, :exports, :none
sitename="PeriLab",
repo=Documenter.Remotes.GitLab("dlr-PeriHub", "PeriLab"),
repo=Documenter.Remotes.GitHub("PeriHub", "PeriLab.jl"),

format=Documenter.HTML(
canonical="https://gitlab.com/dlr-perihub/perilab",
canonical="https://github.com/PeriHub/PeriLab.jl",
assets=["assets/favicon.ico"],
edit_link="main"
),
Expand Down
8 changes: 4 additions & 4 deletions docs/src/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,18 +31,18 @@ cannot figure out how to do, please reach out with questions in Domains/Data on
[Discourse](https://github.com/PeriHub/PeriLab.jl/discussions).

Please report bugs by
[opening an issue](https://gitlab.com/dlr-perihub/PeriLab.jl/-/issues/new).
[opening an issue](https://github.com/PeriHub/PeriLab.jl/issues/new/choose).

You can follow the **source** links throughout the documentation to jump right
to the source files on GitHub to make pull requests for improving the
documentation and function capabilities.

Please review [PeriLab contributing
guidelines](https://gitlab.com/dlr-perihub/PeriLab.jl/-/blob/main/CONTRIBUTING.md)
guidelines](https://github.com/PeriHub/PeriLab.jl/blob/main/CONTRIBUTING.md)
before submitting your first PR!

Information on specific versions can be found on the [Release
page](https://gitlab.com/dlr-perihub/PeriLab.jl/-/blob/main/CHANGELOG.md).
page](https://github.com/PeriHub/PeriLab.jl/blob/main/CHANGELOG.md).

## Package Manual

Expand All @@ -59,4 +59,4 @@ loading the PeriLab.jl package with `using PeriLab`) types and functions
are considered a part of the public API of the PeriLab.jl package. In general
all such objects are documented in this manual (in case some documentation is
missing please kindly report an issue
[here](https://gitlab.com/dlr-perihub/PeriLab.jl/-/issues/new)).
[here](https://github.com/PeriHub/PeriLab.jl/-/issues/new)).
4 changes: 2 additions & 2 deletions docs/src/lib/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ There are multiple options to generate your own input mesh:

- Use the [Perihub](https://gitlab.com/dlr-perihub/Perihub.jl) framework to generate your own input mesh.

- Generate your own input mesh with julia, [here](https://gitlab.com/dlr-perihub/PeriLab.jl/-/tree/main/examples/Training/meshing/mesh.jl?ref_type=heads) is an example.
- Generate your own input mesh with julia, [here](https://github.com/PeriHub/PeriLab.jl/-/tree/main/examples/Training/meshing/mesh.jl?ref_type=heads) is an example.

- Use an existing Abaqus Inputfile (.inp).

Expand Down Expand Up @@ -52,4 +52,4 @@ If your question is not addressed here, please feel free to [contact us](mailto:

## Contributions

Contributions are always welcomed, take a look at the [Contributing Guidelines](https://gitlab.com/dlr-perihub/PeriLab.jl/-/blob/main/CONTRIBUTING.md)
Contributions are always welcomed, take a look at the [Contributing Guidelines](https://github.com/PeriHub/PeriLab.jl/blob/main/CONTRIBUTING.md)
1 change: 1 addition & 0 deletions docs/src/lib/functions.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ set_max_rank
set_synch
switch_NP1_to_N
synch_manager
clear_data_manager
```

```@meta
Expand Down
2 changes: 1 addition & 1 deletion docs/src/man/input_yaml.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ The PeriLab configuration file is a YAML file used to specify the parameters for
- **_Own_Name_**: Numeric value representing interblock damage. (Float64 or Int64, required)
- **Anisotropic Damage**: Dictionary of anisotropic damage parameters.
- **Critical Value X/Y**: Numeric values representing critical values in X and Y directions. (Float64 or Int64, required)
- **Material Models**: Dictionary of material models. (optional)
- **Material Models**: Dictionary of [material models](material_manual.md). (optional)
- **_Own_Name_**: List of material model configurations.
- **Material Model**: String representing the material model.
- **Symmetry**: String representing the symmetry. (optional)
Expand Down
70 changes: 9 additions & 61 deletions docs/src/manual.md → docs/src/man/material_manual.md
Original file line number Diff line number Diff line change
@@ -1,67 +1,16 @@
# Model defintion
A basic PeriLab model exists two files. A mesh file and a yaml file.
# Material Models

## Mesh file
The mesh file is an ASCII file and has the following structure for 2D.
| header: x | y | block_id | volume |
|:---|:---|:---|:---|
|-1.5| 0 | 1 | 1.e-01 |
|-0.5| 0 | 1 | 1.e-01 |
|0.5 | 0 | 1 | 1.e-01 |
|1.5 | 0 | 1 | 1.e-01 |
|-1.5| 1 | 1 | 1.e-01 |

and 3D

| header: x | y | z | block_id | volume |
|:---|:---|:---|:---|:---|
|-1.5| 0 | 2 | 1 | 1.e-01 |
|-0.5| 0 | 2 | 1 | 1.e-01 |
|0.5 | 0 | 2 | 1 | 1.e-01 |
|1.5 | 0 | 0 | 1 | 1.e-01 |
|-1.5| 1 | 1 | 1 | 1.e-01 |

The difference is found automatically. If no z occurs PeriLab identifies it as 2D problem and requests a plane stress or plane strain definition.

Additional parameter can be applied in the header. They will be added in the datamanager and can be used in the programm. If you add x,y,z to the parameter a multidimensional field will be created, e.g.
MyVarx, MyVary will be created as field MyVar with 2 degrees of freedom.


**Variable definition**
| Parameter | Datamanager name | Header name 2D | Header name 3D | Type |
|:---|:---|:---|:---|:---|
|x, y, z (optional) coordinate of the node | Coordinates | x, y | x, y, z | Float64, Int64|
| Definition to which block the node corresponds. Is needed in the Yaml file to define properties | Block_Id | block_id | block_id | Int64|
| Volume the node represents. | Volume | volume | volume | Float64, Int64|


**Optional**
| Parameter | Datamanager name | Header name 2D | Header name 3D | Type |
|:---|:---|:---|:---|:---|
| Orientation of a Node | Angles | Angles | Anglesx, Anglesy, Anglesz | Float64, Int64|
| Activation time of a node, e.g. used for additive manufacturing to define when the node will be acativated | Activation_Time | Activation_Time | Activation_Time | Float64, Int64|
| Status of the node. If it is false the node is deactivated, but exists. This variable is automatically created if additive models are used and set everywhere to false, if it is not predefined | Active | Active | Active | Bool |

## Yaml file

tbd

## Node set file (optional)


# Existing Models
## Existing Models
The physics related functions can be found [here](
https://perihub.github.io/PeriLab.jl/stable/lib/physics_functions/
).
## Material Models

| Method | Related Model in PeriLab |
|---|---|
| [Bond-based](theory/basics.md#Bond-based) | [Bond-based Elastic](https://gitlab.com/dlr-perihub/PeriLab.jl/-/blob/main/src/Physics/Material/BondBased/Bondbased_Elastic.jl) |
| [Ordinary state-based](theory/basics.md#PD_Solind) | [PD Solid Elastic](https://gitlab.com/dlr-perihub/PeriLab.jl/-/blob/main/src/Physics/Material/Material_Models/PD_Solid_Elastic.jl) [PD Solid Plastic](https://gitlab.com/dlr-perihub/PeriLab.jl/-/blob/main/src/Physics/Material/Material_Models/PD_Solid_Plastic.jl) |
|[Non-ordinary state-based](theory/basics.md#Correspondence)| [Correspondence Elastic](https://gitlab.com/dlr-perihub/PeriLab.jl/-/blob/main/src/Physics/Material/Material_Models/Correspondence_Elastic.jl) [Correspondence Plastic](https://gitlab.com/dlr-perihub/PeriLab.jl/-/blob/main/src/Physics/Material/Material_Models/Correspondence_Plastic.jl)|

**Bond-based Elastic**
## Bond-based Elastic

The theory of the bond-based elastic material can be found [here](theory/basics.md#Bond-based)

Expand All @@ -78,7 +27,7 @@ tabelle
One of theses parameters have to be defined.
>Note: In the bond-based formulation the Poisson's ratio is fixed by [0.25 for 2D plane strain and 1/3 for 3D and 2D plane stress](https://link.springer.com/article/10.1007/s42102-019-00021-x), respectively.
**PD Solid Elastic**
## PD Solid Elastic

| Parameter | Unit | Description |
|---|---|---|
Expand All @@ -89,14 +38,14 @@ One of theses parameters have to be defined.

Two of these parameters have to be defined. The other two are determined automatically and can be used in the model if needed.

**PD Solid Plastic**
## PD Solid Plastic

| Parameter | Unit | Description |
|---|---|---|
|Yield Stress | $\left[N/m^2\right]$| [Yield stress](https://en.wikipedia.org/wiki/Yield_(engineering))


**Correspondence Elastic**
## Correspondence Elastic


| Parameter | Unit | Description |
Expand All @@ -113,19 +62,18 @@ For Correspondence Elastic you can provide all 27 elastic parameters if you like
>Note 2: If you define a field "Angles" for 2D or "Anglesx", "Anglesy" and "Anglesz" for 3D in the mesh file your material will be rotated. This helps to create an arbitrary material orientation.

**Correspondence Plastic**
## Correspondence Plastic

| Parameter | Unit | Description |
|---|---|---|
|Yield Stress | $\left[N/m^2\right]$| [Yield stress](https://en.wikipedia.org/wiki/Yield_(engineering))

**Correspondence UMAT**
## Correspondence UMAT

in developement


**Model merging**
## Model merging

In PeriLab you are able to combine models with each other, by simply adding a +. Therefore, modules can be merged and double coding can be avoided.

Expand Down
File renamed without changes.
Loading

0 comments on commit 0c15a76

Please sign in to comment.