Installation: FerriteAssembly requires the non-registered package
MaterialModelsBase.jl,
so to install, run
pkg> add https://github.com/KnutAM/MaterialModelsBase.jl.git
pkg> add https://github.com/KnutAM/FerriteAssembly.jl.gitThe goal of FerriteAssembly is to provide a simple, but versatile and efficient, structure for assembling in Ferrite.jl.
At its core, FerriteAssembly.jl lets you overload some of the following functions
element_routine!(Ke, re, state, ae, material, cellvalues, cellbuffer)
element_residual!(re, state, ae, material, cellvalues, cellbuffer)
facet_routine!(Ke, re, ae, material, facetvalues, facetbuffer)
facet_residual!(re, ae, material, facetvalues, facetbuffer)define a domainbuffer with setup_domainbuffer,
and then call work!(assembler, domainbuffer)
with an assembler of your choice.
This makes it easy to share different elements between researchers,
and provides a structured way to solve various Ferrite.jl problems.
- What FerriteAssembly helps with
- Assemble into system vectors and/or matrices
- Integrate functions over the domain
- Postprocess cell data over the domain
- Convenience features
LoadHandlerfor adding Neumann boundary conditions and body loads/source terms as easy as Dirichlet boundary conditions withFerrite'sConstraintHandler.ExampleElementssubmodule with various behaviors for quick testing- Built-in support for mechanical materials following the
MaterialModelsBase.jlinterface
- Supports many different cases
- Easy switching between sequential and threaded work.
- Multiple domains with different fields, interpolations, and/or element routines.
- Efficient automatic differentiation for tangent stiffness.
- Handling old and new state variables
See the documentation for more details.
Run make -C docs (or julia --project=docs docs/liveserver.jl) to build the
complete documentation and serve it at http://localhost:8000, rebuilding
automatically when files in docs/ or src/ change. This executes all tutorials
and how-tos, just like julia --project=docs docs/make.jl. Run make -C docs draft
(or pass draft to docs/liveserver.jl) to serve draft documentation without
executing the tutorials and how-tos. make -C docs clean removes the generated files.
This badge shows if FerriteAssembly#main is compatible with Ferrite#master.