Skip to content

Commit

Permalink
Merge pull request #11 from lijas/upferrite3
Browse files Browse the repository at this point in the history
Big rework for Ferrite.jl 1.0 release
  • Loading branch information
lijas authored Jul 1, 2024
2 parents e9a17ef + 816d1c1 commit 1f5ea8e
Show file tree
Hide file tree
Showing 41 changed files with 2,208 additions and 911 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
- uses: actions/checkout@v2
- uses: julia-actions/setup-julia@v1
with:
version: 1.7
version: 1.9
- name: Install dependencies
run: julia --project=docs -e 'using Pkg; Pkg.instantiate()'
- name: Build and deploy
Expand Down
3 changes: 2 additions & 1 deletion Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ version = "0.2.6"

[deps]
Ferrite = "c061ca5d-56c9-439f-9c0e-210fe06d3992"
InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
OrderedCollections = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
Expand All @@ -14,4 +16,3 @@ WriteVTK = "64499a7a-5c06-52f2-abe2-ccb03c286192"

[compat]
WriteVTK = "1.13"
Ferrite = "< 0.3.13"
34 changes: 29 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,45 @@
# IGA.jl

Small toolbox for Isogeometric analysis. Built on top of [Ferrite](https://github.com/KristofferC/Ferrite.jl)
Small toolbox for Isogeometric analysis. Built on top of [Ferrite](https://github.com/Ferrite-FEM/Ferrite.jl)

## Documentation

[![][docs-dev-img]][docs-dev-url]

## Installation

Currently only works on Ferrite master branch

```
pkg> add https://github.com/lijas/IGA.jl.git
Pkg.add(url="https://github.com/Ferrite-FEM/Ferrite.jl",rev="master")
Pkg.add(url="https://github.com/lijas/IGA.jl",rev="master")
```

[docs-dev-img]: https://img.shields.io/badge/docs-dev-blue.svg
[docs-dev-url]: https://lijas.github.io/IGA.jl/dev/

## About IGA
## Quick start
The API is similar to Ferrite.jl:

```
using Ferrite, IGA
order = 2 # second order NURBS
nels = (20,10) # Number of elements
patch = generate_nurbs_patch(:plate_with_hole, nels, order)
#Convert nurbs patch to a Grid structure with bezier-extraction operators
grid = BezierGrid(patch)
#Create interpolation and shape values
ip = IGAInterpolation{RefQuadrilateral,order}() #Bernstein polynomials
qr_cell = QuadratureRule{RefQuadrilateral}(4)
cv = BezierCellValues(qr_cell, ip, update_hessians=true)
#...
#update cell values
coords::BezierCoords = getcoordinates(grid, 1)
reinit!(cv, coords)
From wikipedia:
*Isogeometric analysis is a computational approach that offers the possibility of integrating finite element analysis (FEA) into conventional NURBS-based CAD design tools. Currently, it is necessary to convert data between CAD and FEA packages to analyse new designs during development, a difficult task since the two computational geometric approaches are different. Isogeometric analysis employs complex NURBS geometry (the basis of most CAD packages) in the FEA application directly. This allows models to be designed, tested and adjusted in one go, using a common data set.*
```
Loading

0 comments on commit 1f5ea8e

Please sign in to comment.