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.
- Host: GitHub
- URL: https://github.com/wias-pdelib/strainedbandstructures
- Owner: WIAS-PDELib
- License: other
- Created: 2024-02-06T16:17:39.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-15T17:53:50.000Z (over 1 year ago)
- Last Synced: 2025-03-30T14:22:00.130Z (about 1 year ago)
- Topics: band-edge, bimetallic, deformation, elasticity, finite-strain, nanowires, piezoelectric
- Language: Julia
- Homepage:
- Size: 1.32 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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