You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Add build toolchain and recommended utilities to installation guide
* fix mardown linter problems, and remove minimal installation section
* Rework large parts of the README
* Further improvements to the README
* Update Changelog
* Revert "Update Changelog"
This reverts commit cb6888c.
* fix: Unix file utility is not part of GNU
* Refer to FANS_Dashboard explicitly
Co-authored-by: Sanath Keshav <[email protected]>
---------
Co-authored-by: Ishaan Desai <[email protected]>
Co-authored-by: Sanath Keshav <[email protected]>
Before proceeding with the installation, ensure that your system has the necessary dependencies. The prerequisites of FANS can be installed using Spack for a streamlined setup on high-performance computing systems, or through traditional package management for personal use.
20
-
21
-
### Traditional Installation
22
-
23
-
If you're setting up FANS on a personal computer or in a non-HPC environment, follow these instructions:
24
-
25
-
Please ensure you have the following dependencies installed on your system:
26
-
27
-
- CMake (version 3.0 or higher)
19
+
- A C++ compiler (e.g. GCC)
20
+
- CMake (version 3.0 or higher) (+ Unix file utility for creating .deb packages)
21
+
- Git (for cloning this repo)
28
22
- MPI (mpicc and mpic++)
29
23
- HDF5 with parallel support
30
24
- Eigen3
31
25
- FFTW3 with MPI support
32
26
33
-
Specifically, to run FANS, you at least need the following packages:
27
+
### Installing dependencies
28
+
29
+
We recommend installing the dependencies using a package manager. For example, using `apt`, the following commands are run:
If for some reason you are unable to install these packages directly on your host machine, have a look at the [set of Docker images](docker/) to create and work with FANS within an isolated environment.
57
+
We also provide a [set of Docker images](docker/) to work with FANS within an isolated environment.
46
58
47
-
### Spack Installation (Recommended for Clusters/Supercomputers)
59
+
### Installing dependencies using Spack
48
60
49
-
Spack is a package manager designed for high-performance computing environments. It simplifies the installation of complex software stacks, making it ideal for setting up FANS on large clusters or supercomputers.
61
+
Spack is a package manager designed for high-performance computing environments. It simplifies the installation of complex software stacks, making it ideal for setting up FANS on remote systems.
50
62
51
-
1.**Install Spack**: If you don’t have Spack installed, you can set it up with the following commands:
63
+
1.**Install Spack**: If Spack is not installed, set it up with the following commands:
@@ -66,15 +78,15 @@ Spack is a package manager designed for high-performance computing environments.
66
78
spack install fftw +mpi
67
79
```
68
80
69
-
You can also use alternative and optimized FFTW implementations depending on your system's architecture like amdfftw (For AMD systems) or cray-fftw (For Cray systems) or fujitsu-fftw (For Fujitsu systems).
81
+
Alternatively, optimized FFTW implementations can be used depending on your system's architecture, for example `amdfftw` (For AMD systems) or `cray-fftw` (For Cray systems) or `fujitsu-fftw` (For Fujitsu systems).
70
82
71
83
3. **Load Dependencies** Once dependencies are installed, you can load them before building:
72
84
73
85
```bash
74
86
spack load cmake mpi hdf5 eigen fftw
75
87
```
76
88
77
-
### Building the Project
89
+
## Building
78
90
79
91
1. Clone the repository:
80
92
@@ -83,40 +95,40 @@ Spack is a package manager designed for high-performance computing environments.
83
95
cd FANS
84
96
```
85
97
86
-
2. Configure the project using CMake:
98
+
2. Configure the build using CMake:
87
99
88
100
```bash
89
101
mkdir build
90
102
cd build
91
103
cmake ..
92
104
```
93
105
94
-
3. Compile the project:
106
+
3. Compile:
95
107
96
108
```bash
97
109
cmake --build . -j
98
110
```
99
111
100
-
The compilation will symlink the generated `FANS` binary into the `test/` directory for convenience.
112
+
The compilation symlinks the generated `FANS` binary into the `test/` directory for convenience.
101
113
102
-
### Build Options
114
+
### Configuring a build
103
115
104
-
This project supports the following CMake build options:
116
+
The following CMake configuration options exist:
105
117
106
118
- `CMAKE_BUILD_TYPE`: Sets the build type. Common values are Debug, Release, RelWithDebInfo, and MinSizeRel.
107
119
108
120
- `FANS_BUILD_STATIC`: Build static library instead of shared library.
109
121
- Default: OFF
110
122
- Usage: `-DFANS_BUILD_STATIC=ON`
111
123
112
-
- `CMAKE_INTERPROCEDURAL_OPTIMIZATION`: Enable interprocedural optimization (IPO) for all targets.
124
+
- `CMAKE_INTERPROCEDURAL_OPTIMIZATION`: Enable inter-procedural optimization (IPO) for all targets.
- Note: When you run the configure step for the first time, IPO support is automatically checked and enabled if available. A status message will indicate whether IPO is activated or not supported.
116
128
117
-
### Installing the Project
129
+
## Installing
118
130
119
-
After compiling, you can install FANS (system-wide) using the following options:
131
+
Install FANS (system-wide) using the following options:
120
132
121
133
1. Using CMake (sudo required if --prefix is omitted):
122
134
@@ -134,8 +146,7 @@ After compiling, you can install FANS (system-wide) using the following options:
134
146
135
147
## Input File Format
136
148
137
-
To run the FANS solver, you need to provide a JSON input file specifying the problem parameters.
138
-
Example input files can be found in the [`test/input_files`](test/input_files) directory. You can use these files as a reference to create your own input file. The input file is in JSON format and contains several fields to define the problem settings...
149
+
FANS requires a JSON input file specifying the problem parameters. Example input files can be found in the [`test/input_files`](test/input_files) directory. It is recommended to use these files as a reference to create your own input file.
139
150
140
151
### Microstructure Definition
141
152
@@ -218,9 +229,9 @@ In the case of path/time-dependent loading as shown, for example as in plasticit
218
229
219
230
- Additional material model specific results can be included depending on the problem type and material model.
220
231
221
-
### Examples
232
+
## Examples
222
233
223
-
If you would like to run some example tests, you can execute the [`run_tests.sh`](test/run_tests.sh) file. For example to run a linear elastic mechanical homogenization problem for a 6 othonormal load cases on a microstructure image of size `32 x 32 x 32` with a single spherical inclusion,
234
+
Execute the [`run_tests.sh`](test/run_tests.sh) file to run tests, which are also examples. For example, to run a linear elastic mechanical homogenization problem for a 6 othonormal load cases on a microstructure image of size `32 x 32 x 32` with a single spherical inclusion,
0 commit comments