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

https://github.com/wias-pdelib/strainedbandstructures

This Julia module computes finite-strain bent nanowires and bimetallic beams.
https://github.com/wias-pdelib/strainedbandstructures

band-edge bimetallic deformation elasticity finite-strain nanowires piezoelectric

Last synced: 10 months ago
JSON representation

This Julia module computes finite-strain bent nanowires and bimetallic beams.

Awesome Lists containing this project

README

          

# StrainedBandstructures.jl

## Working examples

Instantiate this project after cloning or updating via

```
$ julia --project=.
julia> using Pkg
julia> Pkg.instantiate()
```

For example to run the simulation for a GaAs/In0.5Al0.5As nanowire with 50 nm thick core (GaAs) and 10 nm wide shell/stressor (In0.5Al0.5As) type:

```
julia> include("scripts/nanowire.jl")
julia> using PyPlot
julia> nanowire.main(geometry=[30,20,10,2000],stressor_x=0.5,Plotter=PyPlot,postprocess=true)
```

The code by default uses linear FEM elements without any grid refinement and a ZB-(001) crystal orientation.
These settings (and many others) can be tuned by changing the papameters in `scripts/nanowire.jl`.

The above commands will generate a .jld2 file with the solution data and two .vtu files with the bent and unbent nanowire that can be imported in Paraview for visualizing the solution.
In addition, cross-section cuts are created and elastic strain and other solution derivatives are computed on cross-sections perpedicular to the bending direction (by default a middle cross-section is chosen).

### Scripts

- `scripts/nanowire.jl`: 3D nanowire simulation (nonlinear elasticity + polarisation + postprocessing)
- `scripts/bimetal_watson.jl`: runs a set of parametrized bimetal simulations via DrWatson + postprocessing (angle vs. lattice mismatch, 3D bimetal cuts)
- `scripts/bimetal_thermal_vs_lattice.jl`: 2D or 3D bimetal simulations (nonlinear elasticity + misfit strain from thermal effects (main_thermal) or lattice mismatch (main_lattice))

## Todo

- [Done, 16/03/2022] grid generator for nanowire in Julia (currently user must provide sg-files, one can be found in grids folder)
- fully coupled elasticity + polarisation model (currently only forward coupling)
- parallelize simulations in run_watson
- regression tests