Skip to content

Commit 918fe8c

Browse files
committed
Bump version, update readme and changelog
1 parent 4920ff1 commit 918fe8c

File tree

4 files changed

+30
-6
lines changed

4 files changed

+30
-6
lines changed

CHANGELOG.md

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,24 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7-
## Unreleased
7+
# [1.7.0]
88
### Added
9-
- **Edge grading**
9+
- Automatic grading:
10+
- `FixedCountGrader`: simple and quick, grades all blocks in all directions with the same number. Useful while developing meshes - settings blocking etc.
11+
- `SimpleGrader`: quick and good for cases where blocks do not differ much in size. Sets simple-graded counts on blocks based on wanted cell size.
12+
- `SmoothGrader`: Tries to stretch and squeeze cells within blocks by using two graded chops in each direction. The idea is to try to keep difference in cell size between neighbouring blocks as little as possible. Blocks that cannot maintain required cell size are simply/uniformly chopped.
13+
- Possibility to define rings by their inner radius
14+
- Spline round shapes
15+
- Cylinders:
16+
- Add symmetry patch to SemiCylinder
17+
- New examples:
18+
- Quarter cylinder
19+
- One core cylinder
20+
- `ShapeOptimizer` can optimize shapes _before_ they are added to mesh
21+
22+
### Changed
23+
- Renamed `classy_blocks.typing` module to `classy_blocks.cbtyping` due to name clash
24+
- Bugfixes
1025

1126
## [1.6.4]
1227
### Added

README.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,17 +77,15 @@ _Unchecked items are not implemented yet but are on a TODO list_
7777
- [x] Ring (annulus)
7878
- [x] Hemisphere
7979
- [x] Stacks (collections of similar Shapes stacked on top of each other)
80-
- [ ] Predefined parametric Objects
80+
- [x] Predefined parametric Objects
8181
- [x] T-joint (round pipes)
8282
- [x] X-joint
8383
- [x] N-joint (multiple pipes)
84-
- [ ] Collector (a barrel with multiple radial outlets)
8584
- [ ] Other building tools
8685
- [x] Use existing Operation's Face to generate a new Operation
8786
- [x] Chain Shape's start/end surface to generate a new Shape
8887
- [x] Expand Shape's outer surface to generate a new Shape (Cylinder/Annulus > Annulus)
8988
- [x] Contract Shape's inner surface into a new Shape (Annulus > Cylinder/Annulus)
90-
- [ ] Join two Operations by extending their Edges
9189
- [x] Offset Operation's faces to form new operations
9290

9391
## Modifiers
@@ -106,6 +104,7 @@ After blocks have been placed, it is possible to create new geometry based on pl
106104
- [x] Automatic propagation of grading and cell count from a single block to all connected blocks as required by blockMesh
107105
- [x] Projections of vertices, edges and block faces to geometry (triangulated and [searchable surfaces](https://www.openfoam.com/documentation/guides/latest/doc/guide-meshing-snappyhexmesh-geometry.html#meshing-snappyhexmesh-searchable-objects))
108106
- [x] Face merging as described by [blockMesh user guide](https://www.openfoam.com/documentation/user-guide/4-mesh-generation-and-conversion/4.3-mesh-generation-with-the-blockmesh-utility#x13-470004.3.2). Breaks the pure-hexahedral-mesh rule but can often save the day for trickier geometries. Automatic duplication of points on merged block faces
107+
- [x] Auto grading for high-Re meshes
109108
- [ ] Auto grading for Low-Re meshes: boundary layer with specified cell-to-cell expansion, transition with 2:1 expansion, and specified 'bulk' cell size
110109

111110
# Examples
@@ -254,6 +253,16 @@ A collection of pre-assembled parametric Shapes, ready to be used for further co
254253
Three pipes, joined in a single point.
255254
![N-Joint](showcase/n_joint.png)
256255

256+
## Automatic Grading
257+
After blocks have been positioned their cell count must be defined. This can be done manually with something like `operation.chop(axis, start_size=..., c2c_expansion=...)` or anything that `.chop()` method supports. Not all blocks need to be chopped as cell counts will be propagated throughout the mesh so it is advisable to only _chop_ the minimum required.
258+
259+
All that can also be avoided by using automatic graders, for instance, `SmoothGrader` will set counts so that desired cell size will be obtained but will also use multigrading to keep cell sizes between neighbouring blocks as uniform as possible.
260+
261+
![SmoothGrader, automatic grading of blocks](showcase/smooth_grader.png)
262+
263+
Also other, quicker and simpler graders are available.
264+
The ultimate grader that will also create inflation layers on walls for resolved boundary layer is in development.
265+
257266
## Projection To Geometry
258267

259268
[Any geometry that snappyHexMesh understands](https://www.openfoam.com/documentation/guides/latest/doc/guide-meshing-snappyhexmesh-geometry.html)

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "classy_blocks"
3-
version = "1.6.4"
3+
version = "1.7.0"
44
description = "Python classes for easier creation of openFoam's blockMesh dictionaries."
55
readme = "README.md"
66
license = { file = "LICENSE" }

showcase/smooth_grader.png

243 KB
Loading

0 commit comments

Comments
 (0)