An open API service indexing awesome lists of open source software.

https://github.com/jfriedlein/numerical_examples_in_dealii

A collection of different numerical examples implemented in deal.ii. Besides the geometry and mesh, the scripts also apply the boundary conditions if desired.
https://github.com/jfriedlein/numerical_examples_in_dealii

bar dealii examples numerical-modeling numerical-modelling one-element plate-with-a-hole rod single-element three-point-beam

Last synced: 7 months ago
JSON representation

A collection of different numerical examples implemented in deal.ii. Besides the geometry and mesh, the scripts also apply the boundary conditions if desired.

Awesome Lists containing this project

README

          

# Numerical_examples_in_dealii
A collection of different numerical examples implemented in deal.ii

"A numerical example is worth a thousand equations." [Frans Paul VAN DER MEER, Dissertation-Propositions]

... and takes about as many lines of code.

## Changelog
Proposal for updated standard:
- group additional parameter
- create standalone make_grid, with all parameters are explicit input argument

Still being implemented consistently:
From the 04.01.2021 we obey a new standard (numExS11).

- contain member variable named body_dimensions (see Bar_model), which contains characteristic dimensions (length, width, thickness) and maybe also some for paths (e.g. the location of the evaluation path);
- incorporating contact and many more numerical examples (updated soon)

Major changes:
* clean-up
* contact
* member variable named body_dimensions, which contains characteristic dimensions (length, width, thickness)

From the 24.07.2020 we obey a new standard (numExS07).

Major changes:
* clean-up of boundary ids
* option to specify the loading direction and the loaded faces

## ToDo
* add the enumerator_list
* add an exemplary call to make_constraints, make_grid
* change the interfaces of the make_grid functions to obtain the same setup as the deal.ii geometries (all dimensions and parameters as explicit input arguments)
* add a note on the difference between the qplate and the infinite plate (maybe add analytical solution code from PA)
* add a few pictures of the meshes here
* add a documentation (input arguments, interface)
* update the QPlate grid with the new deal.ii function plate_with_a_hole
* add optional parameters/switches (e.g. apply z-sym on pos z-face) as global variables into a standardised framework

## Interface
*** @todo *** document the interfaces

* make_grid(*):

```
QuarterHyperCube_Merged::make_grid ( triangulation, parameter );
loading_direction = QuarterHyperCube_Merged::loading_direction;
boundary_id_collection[enums::id_primary_load] = QuarterHyperCube_Merged::id_boundary_load;
boundary_id_collection[enums::id_secondary_load] = QuarterHyperCube_Merged::id_boundary_secondaryLoad;
```

Creates the triangulation (2D or 3D), requires additional parameters (can also be hardcoded into the function) and boundary ids (`std::vector boundary_id_collection`).

* make_constraints(*):

```
QuarterHyperCube_Merged::make_constraints ( constraints, fe, n_components, dof_handler_ref, apply_dirichlet_bc,
load_increment, parameter);
```

Apply the boundary conditions onto the faces, e.g. symmetry BC.

## Available numerical examples
The names try to be as general as possible. Look closely, there are many options, so e.g. the HyperRectangle is not just a rectangle, but can be notched multiple times by defined round notches.

### HyperCube: one-element (also distorted) & Distorted 8 element patch test
By setting the number of global refinements to zero, you obtain the one-element test.
For number of global refinements equal to 1 (in 3D) you obtain 8 Elements arranged as a cube, which can also be distorted internally (overall still a cube, but distorted but matching elements inside). With the option (twitch) the Dis8El version can also be twitched, so it is no longer a cube

@todo add picture of OET and distored OET

### HyperRectangle:
For the bar or sheet strip (just a matter of the width) initial inhomogenous refinements are available. For finite plasticity, we recommend making the finer mesh part approximately a square to also capture the shear bands (develop for isotropy at 55°).

### Rod
Parameters

Be aware that you can also choose the geometry of the notch (round, sharp), which might affect your results.

* Total length of the rod
* Radius of the cylindrical part
* length of the notch
* Radius of the leftover material in the notch (or specify the tool radius)
* Number of elements in the notched area in y-direction (number of repetitions)
* Number of elements in the cylindrical part in y-direction

### Quarter/Eight of a plate with hole

### Tensile specimen SEP1230 (parameterised)
It's parameterised so you can also change the geometry.

### SphereRigid-cube_contact: Pushing a rigid sphere into a cube in 2D
For this example to work you require the assemble routines for contact that are NOT yet available online.

### Three-point beam
Bending of a notched beam

!!! Not developed anymore, version frozen in March 2020 !!!