mirror of
https://github.com/JuliaFEM/JuliaFEM.jl.git
synced 2026-09-19 09:54:55 +00:00
docs(index): update documentation landing page
Modernize index page with comprehensive overview and quick start guide. Replace simple contents page with informative landing page. - Add overview section describing JuliaFEM.jl - Add key features section highlighting capabilities - Add installation instructions - Add quick start example code - Update contributing section with GitHub link - Add license information - Remove old contents listing
This commit is contained in:
+50
-22
@@ -1,35 +1,63 @@
|
||||
# JuliaFEM.jl documentation
|
||||
# JuliaFEM.jl
|
||||
|
||||
```@contents
|
||||
Pages = ["index.md", "api.md"]
|
||||
```
|
||||
JuliaFEM.jl is an open-source finite element method (FEM) framework written in Julia, designed for reliable, scalable, and distributed finite element analysis.
|
||||
|
||||
The JuliaFEM project develops open-source software for reliable, scalable,
|
||||
distributed Finite Element Method.
|
||||
## Overview
|
||||
|
||||
The JuliaFEM software library is a framework that allows for the distributed
|
||||
processing of large Finite Element Models across clusters of computers using
|
||||
simple programming models. It is designed to scale up from single servers to
|
||||
thousands of machines, each offering local computation and storage. The basic
|
||||
design principle is: everything is nonlinear. All physics models are nonlinear
|
||||
from which the linearization are made as a special cases.
|
||||
JuliaFEM.jl provides a modern, type-safe API for finite element analysis with support for:
|
||||
|
||||
## Installing and testing package
|
||||
- **Multiple element types**: Triangles, quadrilaterals, tetrahedra, hexahedra, and more
|
||||
- **Various physics**: Linear and nonlinear elasticity, heat transfer, and more
|
||||
- **GPU acceleration**: CUDA support for high-performance computing
|
||||
- **Distributed computing**: Multi-GPU and MPI support for large-scale problems
|
||||
|
||||
## Key Features
|
||||
|
||||
- **Type-safe element system**: Elements are parameterized by topology, basis functions, and DOF specifications
|
||||
- **Modern physics API**: Clean separation between mesh, material, field, and formulation
|
||||
- **Flexible material models**: Linear elastic, Neo-Hookean, perfect plasticity, and more
|
||||
- **Efficient assembly**: COO and CSC sparse matrix formats with GPU support
|
||||
|
||||
## Installation
|
||||
|
||||
Install JuliaFEM.jl using Julia's package manager:
|
||||
|
||||
Installing package goes same way like other packages in julia, i.e.
|
||||
```julia
|
||||
julia> Pkg.add("JuliaFEM")
|
||||
using Pkg
|
||||
Pkg.add("JuliaFEM")
|
||||
```
|
||||
|
||||
Testing package can be done using `Pkg.test`, i.e.
|
||||
## Quick Start
|
||||
|
||||
```julia
|
||||
julia> Pkg.test("JuliaFEM")
|
||||
using JuliaFEM
|
||||
|
||||
# Create a mesh
|
||||
mesh = create_unit_cube_mesh(Hex8, 10, 10, 10)
|
||||
|
||||
# Define a physics problem
|
||||
physics = Physics(
|
||||
name = "elasticity",
|
||||
mesh = mesh,
|
||||
element_set = :all,
|
||||
field = Displacement{3}(),
|
||||
formulation = ContinuumFormulation{FullThreeD}(),
|
||||
material = LinearElastic(; E=200e9, ν=0.3)
|
||||
)
|
||||
|
||||
# Assemble and solve
|
||||
assemble!(physics)
|
||||
solve!(physics)
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
- [API Reference](@ref) - Complete API documentation
|
||||
|
||||
## Contributing
|
||||
|
||||
Have a new great idea and want to share it with the open source community?
|
||||
From [here](https://github.com/JuliaLang/julia/blob/master/CONTRIBUTING.md)
|
||||
and [here](https://juliadocs.github.io/Documenter.jl/stable/man/contributing/)
|
||||
you can look for coding style. [Here](https://docs.julialang.org/en/stable/manual/packages/#Making-changes-to-an-existing-package-1) is explained how to contribute to
|
||||
open source project, in general.
|
||||
Contributions are welcome! Please see the [GitHub repository](https://github.com/JuliaFEM/JuliaFEM.jl) for guidelines.
|
||||
|
||||
## License
|
||||
|
||||
JuliaFEM.jl is licensed under the MIT License.
|
||||
|
||||
Reference in New Issue
Block a user