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
Copy file name to clipboardExpand all lines: README.md
+17-17Lines changed: 17 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@
3
3
Fourier-Accelerated Nodal Solver (FANS) is an FFT-based homogenization solver for microscale multiphysics problems. FANS is written in C++, built using CMake, and it has MPI parallelization.
@@ -17,7 +17,7 @@ Fourier-Accelerated Nodal Solver (FANS) is an FFT-based homogenization solver fo
17
17
18
18
FANS has the following dependencies:
19
19
20
-
- A C++ compiler (e.g. GCC, Clang, etc.)
20
+
- A C++ compiler (e.g., GCC, Clang, etc.)
21
21
- CMake (version 3.21 or higher)
22
22
- Git (for cloning this repo)
23
23
- MPI (mpicc and mpic++)
@@ -27,7 +27,7 @@ FANS has the following dependencies:
27
27
28
28
### Installing dependencies
29
29
30
-
- On Debianbased systems, we recommend installing the dependencies using using `apt`,
30
+
- On Debian-based systems, we recommend installing the dependencies using `apt`,
31
31
32
32
```bash
33
33
apt-get install \
@@ -51,10 +51,10 @@ FANS has the following dependencies:
51
51
52
52
### Setting up a Python environment
53
53
54
-
Also, we recommend to set up a Python virtual environment for the [`FANS_Dashboard.ipynb`](FANS_Dashboard/FANS_Dashboard.ipynb) via [pixi](https://pixi.sh/) with all required Python dependencies in an isolated environment:
54
+
Also, we recommend setting up a Python virtual environment for the [`FANS_Dashboard.ipynb`](FANS_Dashboard/FANS_Dashboard.ipynb) via [pixi](https://pixi.sh/) with all required Python dependencies in an isolated environment:
55
55
56
56
```bash
57
-
# Install pixi if not done already
57
+
# Install Pixi if not done already,
58
58
curl -fsSL https://pixi.sh/install.sh | sh
59
59
60
60
# Create and activate the environment
@@ -79,7 +79,7 @@ Spack is a package manager designed for high-performance computing environments.
79
79
spack install fftw +mpi
80
80
```
81
81
82
-
Additionally, 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).
82
+
Additionally, 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).
83
83
84
84
3. **Load Dependencies** Once dependencies are installed, load them before building:
85
85
@@ -142,7 +142,7 @@ Install FANS (system-wide) using the following options:
FANS is also available as a conda-package on [conda-forge/fans](https://anaconda.org/conda-forge/fans). No dependencies have to be manually installed for it to work.
145
+
FANS is also available as a condapackage on [conda-forge/fans](https://anaconda.org/conda-forge/fans). No dependencies have to be manually installed for it to work.
146
146
It can be installed via
147
147
148
148
```bash
@@ -153,7 +153,7 @@ exposing the executable `FANS`.
153
153
154
154
## Input File Format
155
155
156
-
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.
156
+
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 input file.
157
157
158
158
### Microstructure Definition
159
159
@@ -167,7 +167,7 @@ FANS requires a JSON input file specifying the problem parameters. Example input
167
167
168
168
- `filepath`: This specifies the path to the HDF5 file that contains the microstructure data.
169
169
- `datasetname`: This is the path within the HDF5 file to the specific dataset that represents the microstructure.
170
-
- `L`: Microstructure length defines the physical dimensions of the microstructure in the x, y, and z directions.
170
+
- `L`: Microstructure length defines the physical dimensions of the microstructure in the $x$, $y$, and $z$ directions.
171
171
172
172
### Problem Type and Material Model
173
173
@@ -189,7 +189,7 @@ FANS requires a JSON input file specifying the problem parameters. Example input
189
189
- `LinearElasticIsotropic` for linear isotropic elastic material model
190
190
- `LinearElasticTriclinic` for linear triclinic elastic material model
191
191
- `PseudoPlasticLinearHardening` / `PseudoPlasticNonLinearHardening` for plasticity mimicking model with linear/nonlinear hardening
192
-
- `J2ViscoPlastic_LinearIsotropicHardening` / `J2ViscoPlastic_NonLinearIsotropicHardening` for rateindependent / dependent J2 plasticity model with kinematic and linear/nonlinear isotropic hardening.
192
+
- `J2ViscoPlastic_LinearIsotropicHardening` / `J2ViscoPlastic_NonLinearIsotropicHardening` for rate-independent / dependent J2 plasticity model with kinematic and linear/nonlinear isotropic hardening.
193
193
194
194
- `material_properties`: This provides the necessary material parameters for the chosen material model. For thermal problems, you might specify `conductivity`, while mechanical problems might require `bulk_modulus`, `shear_modulus`, and more properties for advanced material models. These properties can be defined as arrays to represent multiple phases within the microstructure.
195
195
@@ -206,7 +206,7 @@ FANS requires a JSON input file specifying the problem parameters. Example input
206
206
```
207
207
208
208
- `method`: This indicates the numerical method to be used for solving the system of equations. `cg` stands for the Conjugate Gradient method, and `fp` stands for the Fixed Point method.
209
-
- `error_parameters`: This section defines the error parameters for the solver. Error control is applied on the finite element nodal residual of the problem.
209
+
- `error_parameters`: This section defines the error parameters for the solver. Error control is applied to the finite element nodal residual of the problem.
210
210
- `measure`: Specifies the norm used to measure the error. Options include `Linfinity`, `L1`, or `L2`.
211
211
- `type`: Defines the type of error measurement. Options are `absolute` or `relative`.
212
212
- `tolerance`: Sets the tolerance level for the solver, defining the convergence criterion based on the chosen error measure. The solver iterates until the solution meets this tolerance.
@@ -235,7 +235,7 @@ FANS requires a JSON input file specifying the problem parameters. Example input
235
235
- For `thermal` problems, the array typically has 3 components, representing the temperature gradients in the $x$, $y$, and $z$ directions.
236
236
- For `mechanical` problems, the array must have 6 components, corresponding to the components of the strain tensor in Mandel notation (e.g., $[\varepsilon_{11}, \varepsilon_{22}, \varepsilon_{33}, \sqrt{2}\varepsilon_{12}, \sqrt{2}\varepsilon_{13}, \sqrt{2}\varepsilon_{23}]$).
237
237
238
-
In the case of path/time-dependent loading as shown, for example as in plasticity problems, the `macroscale_loading` array can include multiple steps with corresponding loading conditions.
238
+
In the case of path/time-dependent loading, as shown, for example, in plasticity problems, the `macroscale_loading` array can include multiple steps with corresponding loading conditions.
239
239
240
240
FANS also supports mixed boundary conditions, where some components can be strain-controlled while others are stress-controlled:
241
241
@@ -257,26 +257,26 @@ FANS also supports mixed boundary conditions, where some components can be strai
- `results`: This array lists the quantities that should be stored into the results HDF5 file during the simulation. Each string in the array corresponds to a specific result:
260
+
- `results`: This array lists the quantities that should be stored in the results HDF5 file during the simulation. Each string in the array corresponds to a specific result:
261
261
262
262
- `stress_average` and `strain_average`: Volume averaged- homogenized stress and strain over the entire microstructure.
263
-
- `absolute_error`: The L-infinity error of finite element nodal residual at each iteration.
263
+
- `absolute_error`: The L-infinity error of the finite element nodal residual at each iteration.
264
264
- `phase_stress_average` and `phase_strain_average`: Volume averaged- homogenized stress and strain for each phase within the microstructure.
265
265
- `microstructure`: The original microstructure data.
266
266
- `displacement`: The displacement field (for mechanical problems) and temperature field (for thermal problems) at each voxel in the microstructure.
267
267
- `displacement_fluctuation`: The periodic displacement fluctuation field (for mechanical problems) and periodic temperature fluctuation field (for thermal problems at each voxel in the microstructure).
268
268
- `stress` and `strain`: The stress and strain fields at each voxel in the microstructure.
269
269
270
-
- Additional material modelspecific results can be included depending on the problem type and material model.
270
+
- Additional material model-specific results can be included depending on the problem type and material model.
271
271
272
272
## Acknowledgements
273
273
274
-
Funded by Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany’s Excellence Strategy - EXC 2075 – 390740016. Contributions by Felix Fritzen are funded by Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) within the Heisenberg program - DFG-FR2702/8 - 406068690; DFG-FR2702/10 - 517847245 and through NFDI-MatWerk - NFDI 38/1 - 460247524. We acknowledge the support by the Stuttgart Center for Simulation Science ([SimTech](https://www.simtech.uni-stuttgart.de/)).
274
+
Funded by Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany’s Excellence Strategy - EXC 2075 – 390740016. Contributions by Felix Fritzen are funded by Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) within the Heisenberg program - DFG-FR2702/8 - 406068690; DFG-FR2702/10 - 517847245 and through NFDI-MatWerk - NFDI 38/1 - 460247524. We acknowledge the support of the Stuttgart Center for Simulation Science ([SimTech](https://www.simtech.uni-stuttgart.de/)).
0 commit comments