Radial Warning Mac OS
Radial Warning Mac OS
- OBS (Open Broadcaster Software) is free and open source software for video recording and live streaming. Stream to Twitch, YouTube and many other providers or record your own videos with high quality H264 / AAC encoding.
- Depending on the exam options set by your instructor, you may see a Time Remaining alarm with a time countdown or a 5 Minute Warning alarm with a time countdown. Otherwise, to set an alarm, click the Alarm icon, and select “Add Alarm”.
MAC OS Is Infected' pop-up scam: WARNING! MAC OS is infected with Viruses and other malicious applications. Viruses must be removed and system damage repaired. It is necessary to Call Apple Support 1-844-658-5859 and follow Virus removal procedure immediately, please proceed. If you leave this site your Mac OS will remain damaged and vulnerable. Appearance of 'WARNING! MAC OS Is Infected' scam (GIF). You can change shape settings at any moment by using smart handlers or convert to editable curves when you need it. State-of-the-art drawing and graphics editing capabilities. Unlimited undo redo, move, resize, rotate, skew, grouping, layers. Linear, radial and image fills, opacity, opacity masks, shadow effects.
Released:
Create 3D fusion reactor CAD models based on input parameters
Project description
The Paramak python package allows rapid production of 3D CAD models of fusionreactors. The purpose of the Paramak is to provide geometry for parametricstudies. It is possible to use the created geometry in engineering andneutronics studies as the STP or STL files produced can be automaticallyconverted to DAGMC compatible neutronics models or meshed and used infinite element analysis codes.
:point_right: Documentation
:point_right: Video presentation
:point_right: Publication
The package was originally conceived by Jonathan Shimwell and based on theFreeCAD Python API. WhenCadQuery 2 was released the projectstarted to migrate the code base. Shortly after this migration the projectbecame open-source and has flourished ever since. The project has grown largelydue to two contributors in particular (John Billingsley andRemi Delaporte-Mathurin) and others have also helped, you can see all those whohave helped the development in theAuthors.md and in theGitHub contributions.The code has been professionally reviewed by PullRequest.com whoproduced a report and inline suggestions.
Citing
If you use the Paramak in your research, please consider giving properattribution by citing the our Publication:
J. Shimwell, J. Billingsley and R. Delaporte-Mathurin et al. The Paramak:Automated Parametric Geometry Construction for Fusion Reactor Designs.F1000Research, vol. 10, Jan. 2021, p. 27. DOI.org (Crossref),doi:10.12688/f1000research.28224.1.
BibTex
System Installation
To install the Paramak you need to haveConda,Cadquery 2 andPip. If you have these three dependenciesalready then you can install the Paramak using Pip:
Detailed installationinstructionscan be found in the User's Guide.
Docker Image Installation
Another option is to use the Docker image which contains all the requireddependencies.
Install Docker CE forUbuntu,Mac OS, orWindows,including the part where you enable docker use as a non-root user.
Pull the docker image from the store by typing the following command in aterminal window, or Windows users might prefer PowerShell.
docker pull ukaea/paramak
Now that you have the docker image you can enable graphics linking betweenyour os and docker, and then run the docker container by typing the followingcommands in a terminal window.
sudo docker run -p 8888:8888 ukaea/paramak /bin/bash -c 'jupyter notebook --notebook-dir=/opt/notebooks --ip='*' --port=8888 --no-browser' --allow-root
A URL should be displayed in the terminal and can now be opened in theinternet browser of your choice. This will load up the examples folder whereyou can view the 3D objects created. Alternatively the Docker imag can be runin terminal mode
docker run -it ukaea/paramak
Alternatively the Docker image can be run in terminal mode .docker run -it ukaea/paramak
You may also want to make use of the--volumeflag when running Docker so that you can retrieve files from the Dockerenviroment to your base system.
Docker can also be used to run the tests using the commanddocker run --rm ukaea/paramak pytest tests
Features
In general the Paramak takes points and connection information in 2D space (XY)and performs operations on them to create 3D volumes. The points andconnections can be provided by the user or when using parametric componentsthe points and connections are calculated by the software.
Once points and connections between the points are provided the user hasoptions to perform CAD operations (rotate or extrude on different orientations)to create a 3D volume and boolean operations like cut, union and intersection.
The different families of shapes that can be made with the Paramak are shown inthe table below. The CadQuery objects created can be combined and modified(e.g. fillet corners) using CadQueries powerful filtering capabilties to createmore complex models (e.g. a Tokamak). The Tokamak images below are colouredbased on the shape family that the component is made from. There are alsoparametric components which provide convenient fusion relevant shapes forcommon reactor components.
Selection Of Parametric Reactors
Selection Of Parametric Components
Selection Of Parametric Shapes
Rotate | Extrude | Sweep | |
---|---|---|---|
Points connected with straight lines | RotateStraightShape() | ExtrudeStraightShape() | SweepStraightShape() |
Points connected with spline curves | RotateSplineShape() | ExtrudeSplineShape() | SweepSplineShape() |
Points connected with a mixture (splines, straights and circles) | RotateMixedShape() | ExtrudeMixedShape() | SweepMixedShape() |
Circular shapes | RotateCircleShape() | ExtrudeCircleShape() | SweepCircleShape() |
There are several example scripts for making shapes, components, reactors andneutronics models in theexamples folder.The following examples are minimal examples to demonstrate some basic usage.
Usage - Parametric Shapes
There are a collection of Python scripts in the example folder that demonstratesimple shape construction and visualisation. However here is a quick example ofa RotateStraightShape.
After importing the class the user then sets the points, by default, pointsshould be a list of (x,z) coordinates. In this case the points are connectedwith straight lines.
Once these properties have been set users can write 3D volumes in CAD STP orSTL formats.
Usage - Parametric Components
Parametric components are wrapped versions of the eight basic shapes whereparameters drive the construction of the shape. There are numerous parametriccomponents for a variety of different reactor components such as center columns,blankets, poloidal field coils. This example shows the construction of aplasma. Users could also construct a plasma by using a RotateSplineShape()combined with coordinates for the points. However a parametric component calledPlasma can construct a plasma from more convenient parameters. Parametriccomponents also inherit from the Shape object so they have access to the samemethods like export_stp() and export_stl().
Usage - Parametric Reactors
Parametric Reactors are wrapped versions of a combination of parametric shapesand components that comprise a particular reactor design. Some parametricreactors include a ball reactor and a submersion ball reactor. These allow fullreactor models to be constructed by specifying a series of simple parameters.This example shows the construction of a simple ball reactor without theoptional outer pf and tf coils.
Usage - Reactor Object
A reactor object provides a container object for all Shape objects created, andallows operations to be performed on the whole collection of Shapes.
Initiate a Reactor object and pass a list of all Shape objects to theshapes_and_components parameter.
A html graph of the combined Shapes can be created.
Usage - Neutronics Model Creation
It is possible to convert a parametric Reactor model into a neutronics model.
To install additional python packages needed to run neutronics with amodified pip install
More information is avaialbe in thedocumentation.
There are several examples in the examples folder.
To create the neutronics model you will needTrelis and the DAGMC plugininstalled DAGMC plugin.
Further information on DAGMC neutronics can be foundhere and information on OpenMC can be foundhere. The two codes can be used together tosimulate neutron transport on the h5m file created. TheUKAEA openmc workshop also has someParamak with DAGMC and OpenMC based tasks that might be of interest.
Release historyRelease notifications RSS feed
0.2.3
0.2.2
0.2.1
0.2.0
0.1.0
0.0.19
0.0.18
0.0.17
0.0.16
0.0.14
0.0.13
0.0.12
0.0.11
0.0.10
0.0.9
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size paramak-0.2.3-py3-none-any.whl (218.2 kB) | File type Wheel | Python version py3 | Upload date | Hashes |
Filename, size paramak-0.2.3.tar.gz (132.4 kB) | File type Source | Python version None | Upload date | Hashes |
Hashes for paramak-0.2.3-py3-none-any.whl
Algorithm | Hash digest |
---|---|
SHA256 | 7ffb158ee9ae4cf1a900afbeaa57c7272fddd824f664ab0fe47ae3e3a414431d |
MD5 | 912678f461f12c5387d9e66d5653ebae |
BLAKE2-256 | 17e56b6c9ed80ec74fffead0928a2026dc12e95951b89fcfeefd001661c7b162 |
Hashes for paramak-0.2.3.tar.gz
Algorithm | Hash digest |
---|---|
SHA256 | 74a9c797e47368e1e8adc8b5fed84d4c0fc4901c7ef0748218a5eae88b25fff1 |
MD5 | ba8b4ab380748eeb4a09068a177be63e |
BLAKE2-256 | b0c14c9ae6009fa7dc83756a7dcc9581b6cf3869f17ca0fbc19991cbaadee8e7 |
For information on how to build older versions of SU2, have a look here.
Note that the following guide works only on Linux/MacOS and on Windows using Cygwin or the Linux Subsystem.
- Requirements
- Automatically installed dependencies
- Configuration and Compilation
- Advanced Configuration
- Troubleshooting
Quick Compilation Guide
This is a quick guide to compile and install a basic version of SU2. For more information on the requirements and a more detailed description of the build system continue reading the rest of this page.
Short summary of the minimal requirements:
- C/C++ compiler
- Python 3
Note: all other necessary build tools and dependencies are shipped with the source code or are downloaded automatically.
If you have these tools installed, you can create a configuration using the meson.py
found in the root source code folder:
Use ninja
to compile and install the code
Requirements
Compilers
Installing SU2 from source requires a C++ compiler. The GNU compilers (gcc/g++) are open-source, widely used, and reliable for building SU2. The Intel compiler set has been optimized to run on Intel hardware and has also been used successfully by the development team to build the source code, though it is commercially licensed. The Apple LLVM compiler (Clang) is also commonly used by the developers.
- GNU gcc / g++
- Intel icc / icpc
- Apple LLVM (clang)
Note: SU2 uses some C++11 features, that means at least GCC >= v4.7, Clang >= v3.0 or Intel C++ >= v12.0 is necessary.
MPI
In order to build SU2 with parallel support, you need a suitable MPI installation on your machine. During the configuration the build tool does a check (using pkg-config) and enables MPI support. If no installation is found, a serial version of SU2 will be compiled.It is possible to force the MPI mode with the meson option -Dcustom-mpi=true
, it is then assumed that the compilers and/or the environment variables have the right flags, include directories, and linker arguments.
Note: Problems have been reported with MPICH where the build system does not detect the MPI installation, this can be solved using the meson options -Dcustom-mpi=true -Dextra-deps=mpich
. If MPI was installed in a user directory, ensure also that the environment variable PKG_CONFIG_PATH is correctly setup.
Python
SU2 requires Python 3 for compilation and for running the python scripts. Make sure that you have properly set up the python3
executables in your environment.
Optional: swig and mpi4py
If you want to use the python wrapper capabilities, also swig
and mpi4py
are required. On Linuxswig
should be available in the package manager of your distribution and mpi4py
can be installed using pip.
On Mac OS X, you can use the Homebrew package manager. Once it is installed on your system, you can install Swig by running:
Install mpi4py with Python pip using easy install:
Automatically installed dependencies
The following dependencies are automatically downloaded (or initialized if source code was cloned using git
) during the configuration.
Meson and Ninja
Radial Warning Mac Os Download
The build system of SU2 is based on a combination of meson (as the front-end) and ninja (as the back-end). Meson is an open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible. Ninja is a small low-level build system with a focus on speed.
CoDiPack and MeDiPack
In order to use the discrete adjoint solver the compilation requires two additional (header-only) libraries. CoDi provides the AD datatype and MeDi provides the infrastructure for the MPI communication when the reverse mode of AD is used.
Configuration and Compilation
Like mentioned above, SU2 uses meson and ninja for configuration and compilation, respectively. A configuration using meson is generated first and then an invocation of ninja is used to compile SU2 with this configuration.
Basic Configuration
In the root folder of the sources you will find a python script called meson.py
. This script generates a configuration. It will also check whether all dependencies are found and downloads some of them if necessary see previous section.
Note: For the following steps you can also use preinstalled versions of meson
and ninja
available on your machine. Just replace the ./meson.py
and ./ninja
calls with the binaries of the respective installations. However, this way you have to manually make sure that the correct versions of CoDiPack and MeDiPack are placed in the externals/
folders.
The only required argument for meson.py
is a name of a directory where it should store the configuration. You can have multiple configurations in different folders next to each other. To generate a basic configuration that will be stored in the folder build
use
Options can be passed to the script to enable or disable different features of SU2. Below you find a list of project options and their default values:
Option | Default value | Description |
---|---|---|
-Denable-autodiff | false | enable AD (reverse) support (needed for discrete adjoint solver) |
-Denable-directdiff | false | enable AD (forward) support |
-Denable-pywrapper | false | enable Python wrapper support |
-Dwith-mpi | auto | Set dependency mode for MPI (auto ,enabled ,disabled ) |
-Dwith-omp | false | enable MPI+Threads support (experimental) |
-Denable-cgns | true | enable CGNS support |
-Denable-tecio | true | enable TECIO support |
-Denable-mkl | false | enable Intel MKL support |
-Denable-openblas | false | enable OpenBLAS support |
-Denable-pastix | false | enable PaStiX support |
-Denable-mpp | false | enable Mutation++ support |
-Denable-mixedprec | false | enable the use of single precision on linear solvers and preconditioners |
For example to enable AD support pass the option to the meson.py
script along with a value:
To set a installation directory for the binaries and python scripts, use the --prefix
option, e.g.:
If you are not interested in setting custom compiler flags and other options you can now go directly to the Compilation section, otherwise continue reading the next section.
Advanced Configuration
In general meson appends flags set with the environment variable CXXFLAGS
. It is however recommended to use mesons built-in options to set debug mode, warning levels and optimizations. All options can be found here or by using ./meson.py configure
. An already created configuration can be modified by using the --reconfigure
flag, e.g.:
Note that it is only possible to change one option at once.
Build Type
The debug mode can be enabled by using the --buildtype=debug
option. This adds -g
flag and disables all compiler optimizations. If you still want to have optimizations, use --buildtype=debugoptimized
. The default build type is release
.
Compiler optimizations
The optimization level can be set with --optimization=level
, where level
corresponds to a number between 0 (no optimization) and 3 (highest level of optimizations) which is the default.However, that may not result in optimum performance, for example with the GNU compilers level 2 and the extra flag -funroll-loops
results in better performance for most problems.
Some numerical schemes support vectorization (see which ones in the Convective Schemes page), to make the most out of it the compiler needs to be informed of the target CPU architecture, so it knows what “kind of vectorization” it can generate (256 or 512bit, 128bit being the default).With gcc, clang, and icc this can be done via the -march=??
and -mtune=??
options, where ??
needs to be set appropriately e.g. skylake
, ryzen
, etc., these flags can be passed to the compiler by setting CXXFLAGS
before first running meson (which will print some messages acknowledging the flags).
Warning level
The warning level can be set with --warnlevel=level
, where level
corresponds to a number between 0 (no warnings) and 3 (highest level of warning output). Level 1 corresponds to -Wall
, level 2 to -Wall -Wextra
and level 3 to -Wall -Wextra -Wpedantic
. The default level is 0.
Note: The warning flags -Wno-unused-parameter
, -Wno-empty-body
and -Wno-format-security
are always added by default.
Linear algebra options
Compiling with support for a BLAS library (-Denable-mkl
or -Denable-openblas
) is highly recommended if you use the high order finite element solver, or radial basis function (RBF) interpolation in fluid structure interaction problems.Linear solvers and preconditioners can be accelerated with option -Denable-mixedprec=true
, which will switch those computations to single precision while all other aspects of SU2 remain in double precision, for fluid simulations this does not reduce accuracy since the solution is iterative. However, large structural FEA problems may be adversely affected.To a lesser extent MKL 2019 is also used to accelerate (~5%) sparse linear algebra operations.-Denable-mkl
takes precedence over -Denable-openblas
, the system tries to find MKL via pkg-config, if that fails it will then look for MKL in /opt/intel/mkl
, this can be changed via option -Dmkl_root
.When OpenBLAS support is requested the build system uses pkg-config to search the system for package openblas
, option -Dblas-name
, if the library was built from source it may be necessary to set the environment variable PKG_CONFIG_PATH.
For large structural FEA problems on highly anisotropic grids iterative linear solvers might fail. Version 7 introduces experimental support for the direct sparse solver PaStiX (-Denable-pastix
) see detailed instructions in TestCases/pastix_support/readme.txt
.
If the use of BLAS is restricted to RBF interpolation, parallel versions of OpenBLAS can be used, the number of threads will then have to be controlled via the appropriate environment variable (consult the OpenBLAS documentation). Otherwise sequential BLAS should be used.
Note: The BLAS library needs to provide support for LAPACK functions. If this is not the case, the linker will fail with “undefined reference” errors, this problem can be solved by installing LAPACK and specifying it as an extra dependency when running meson.py
using -Dextra-deps=lapack
(this uses pkg-config, use commas to separate the names of multiple extra dependencies).
Compilation
Finally to compile and install SU2 use
Mac Os Catalina
where build
is again a folder with a configuration created using a call to meson.py
described in the previous section. By default ninja uses all available cores in your system for the compilation. You can set the number of cores manually by using the -jN
flag, where N
is the number of cores you want to use.
Mac Os High Sierra
Setting environment variables
Set the environment variables to use the executables from any directory without explicity specifying the path as described in the installation section.
Mac Os Download
Troubleshooting
MPI installation is not found
Meson looks for an MPI installation using pkg-config. But if your MPI implementation does not provide them, it will search for the standard wrapper executables, mpic
, mpicxx
, mpic++
. If these are not in your path, they can be specified by setting the standard environment variables MPICC
, MPICXX
during configuration.
mpi4py library is not found
Meson imports the mpi4py module and searches for the include path. If it is installed in a custom location, make sure to add this path to the PYTHONPATH
environment variable prior calling meson.py
.
Mac Os Mojave
Ninja compiles but fails to install
If building on a cluster that uses a NFS filesystem, ninja may finish the compilation but fail to install with an error such as:
This is a known bug in earlier versions of Python 3. Try upgrading to Python >= 3.7 then rerun ninja.
Radial Warning Mac OS