Skip to main content

FEBID 3D Algorithm for Stream File Generation (F3AST)

Project description

FEBID 3D Algorithm for Stream File generation (F3AST)

Documentation Status

If you use f3ast in any work or publication, we kindly ask you to cite:

Skoric L, Sanz-Hernández D, Meng F, Donnelly C, Merino-Aceituno S, Fernández-Pacheco A. Layer-by-Layer Growth of Complex-Shaped Three-Dimensional Nanostructures with Focused Electron Beams. Nano Lett. 2020 Jan 8;20(1):184–91.

Installation

The package can be installed with pip:

pip install f3ast

To install the most up-to-date version and get the example notebooks, clone the repository from github:

git clone git@github.com:Skoricius/f3ast.git
pip install -e f3ast --user

Documentation

See readthedocs for detailed documentation and examples.

Possible issues

This library was tested with Python 3.8.5. Earlier versions of Python might not have all the libraries required to make this project work. To make sure you are using the correct version of Python without affecting your base environment, use conda environments:

conda create -n f3ast python=3.8.5
conda activate f3ast

And then install the library in the newly created environment.

On MACs, there might be an issue with numba threading. It has something to do with tbb library. If someone finds out a fix, please let me know. A simple workaround is to comment out line 9 in slicing.py which might make the slicing slightly slower.

Building the documentation

Make sure the project is installed. Also, install pandoc with apt install pandoc. Navigate to ./docs folder of the cloned directory. In Linux or with Git Bash (on Windows) run:

make html

If using Windows without Git Bash, first install make. Easiest is to open Powershell and install chocolatey. Then run:

choco install make
make html

Open ./docs/_build/html/index.html.

Usage

Microscope settings are defined in settings.hjson file and contain information about the microscope and basic slicing settings. In the following example, we load the structure and the settings, define the deposit model we are using, and build the stream.

# load the settings
settings = load_settings()
# get the structure from a file
struct = Structure.from_file('testing/FunktyBall.stl', **settings["structure"])
struct.rescale(2) # make the structure a bit bigger
# define the model
gr = 0.1
k = 1
sigma = 4
model = DDModel(struct, gr, k, sigma, **settings['dd_model'])

# Solve for dwells and build the stream
stream_builder, dwell_solver = StreamBuilder.from_model(model, **settings['stream_builder'])
dwell_solver.print_total_time()
# save the streamfile and the build information
save_path = 'funky_ball'
strm = stream_builder.get_stream()
strm.write(save_path)
save_build(save_path, dwell_solver, stream_builder)

For a full step-by-step example, see examples/building.ipynb.

For acquiring calibration parameters, see examples/calibration.ipynb.

TO DO

  • progressive slicing
  • filling in the STL (this should only be done in get_eqd function and should be relatively straightforward)
  • improved testing and CI

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

f3ast-1.0.1.tar.gz (1.7 MB view details)

Uploaded Source

Built Distribution

f3ast-1.0.1-py3-none-any.whl (37.4 kB view details)

Uploaded Python 3

File details

Details for the file f3ast-1.0.1.tar.gz.

File metadata

  • Download URL: f3ast-1.0.1.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for f3ast-1.0.1.tar.gz
Algorithm Hash digest
SHA256 0f9d766c69a833d3b102ac312d48d33d3a86f01e983511b084c261c991053a77
MD5 b97d26117d0b671959587a81479e7c29
BLAKE2b-256 77258baa999c0ec7e85f186ec34bbd88de622be0b483e9039a6f6e84c1f3964a

See more details on using hashes here.

File details

Details for the file f3ast-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: f3ast-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 37.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for f3ast-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e462267f6445e8006eea6c0bf6990b4297eaf3ac2414b586bafc630a6734ba13
MD5 b141a254eb5c02079d10727455f1e03e
BLAKE2b-256 631628894504967f640bd832d09abcb511dce6af646ab23747d6c32699e326a2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page