HOW TOs
From KratosWiki
(Difference between revisions)
(→C++) |
m |
||
(97 intermediate revisions by 13 users not shown) | |||
Line 1: | Line 1: | ||
This section is intended as a list of "recipes" for common needs in using the Kratos | This section is intended as a list of "recipes" for common needs in using the Kratos | ||
+ | |||
+ | ---- | ||
+ | <div style="background:#F2CECE; color:black; text-align:center;"> | ||
+ | == We have moved! == | ||
+ | |||
+ | The development of Kratos Multiphysics has been moved to GitHub. You can find us [https://github.com/KratosMultiphysics/Kratos in our GitHub project page]. We are keeping this wiki until the migration is complete, but it will no longer be updated. Find up-to date documentation in the new [https://github.com/KratosMultiphysics/Kratos/wiki GitHub wiki page]. | ||
+ | </div> | ||
+ | ---- | ||
== General == | == General == | ||
− | * [[Installing kratos in Ubuntu Linux ]] | + | * [[LinuxInstall | Installing kratos in Ubuntu Linux ]] |
− | * [[How to get Kratos]] | + | * [[Windows 7 Download and Installation | Installing kratos in Windows]] |
− | * [[How to Compile Kratos]] | + | * [[Installing kratos in macOS]] |
+ | <!-- * [[MacOSX Installation]] (Leopard) --> | ||
+ | <!-- * [[How to get Kratos]] --> | ||
+ | <!-- * [[How to Compile Kratos]] --> | ||
* [[How to Compile Kratos on the Acuario Cluster]] | * [[How to Compile Kratos on the Acuario Cluster]] | ||
* [[How to Check Kratos is Correctly Installed in Windows]] | * [[How to Check Kratos is Correctly Installed in Windows]] | ||
* [[How to Check Kratos is Correctly Installed in Linux]] | * [[How to Check Kratos is Correctly Installed in Linux]] | ||
* [[How to subscribe to Kratos' mailing list]] | * [[How to subscribe to Kratos' mailing list]] | ||
+ | * [[How to Profile an application (using google-perftools)]] | ||
+ | * [[How to Measure memory consumption (using google-perftools)]] | ||
+ | * [[How to Profile an application (using OProfile)]] | ||
+ | * [[How to work with Groups (Meshes)]] | ||
+ | * [[How to make my application derivable]] | ||
+ | * [[How to use the PaStiX solver in Kratos]] | ||
+ | <!--* [[Working]]--> | ||
+ | <!--* [[Working_kernel]]--> | ||
== OpenMP Parallelism == | == OpenMP Parallelism == | ||
Line 14: | Line 33: | ||
* [[How to "survive" OpenMP parallelism]] | * [[How to "survive" OpenMP parallelism]] | ||
* [[How to force a scalar run]] | * [[How to force a scalar run]] | ||
+ | * [[How to use ThreadSanitizer to detect data race bugs]] | ||
== MPI Parallelism == | == MPI Parallelism == | ||
Line 26: | Line 46: | ||
* [[How to debug OpenCL programs using GDB]] | * [[How to debug OpenCL programs using GDB]] | ||
* [[Support for double-precision floating point basic arithmetic in ATI Stream SDK (2.1 and later)]] | * [[Support for double-precision floating point basic arithmetic in ATI Stream SDK (2.1 and later)]] | ||
+ | |||
+ | == Git == | ||
+ | * [[How to make Git ignore the files resulting from a compilation without conflicts in .gitignore]] | ||
== Python == | == Python == | ||
− | + | '''General Python Use for Kratos''' | |
* [[How to use Python]] | * [[How to use Python]] | ||
− | * [[How to use | + | * [[How to Use an Application]] |
+ | * [[How to use parameters]] | ||
* [[How to import Kratos from Python using the KratosMultiphysics module]] | * [[How to import Kratos from Python using the KratosMultiphysics module]] | ||
− | * [[How to | + | * [[How to work with nodes and elements in python]] |
− | * [[How to | + | * [[How to use multiple model parts]] |
− | * [[How to | + | * [[How to construct a linear solver using the "Linear Solver Factory"]] |
+ | * [[How to construct the "solving strategies"]] | ||
+ | * [[How to create unitary tests]] | ||
+ | * [[How to create a new application]] | ||
* [[strategy_python]] | * [[strategy_python]] | ||
+ | * [[Operations]] | ||
+ | * [[How to acess the values of a Table]] | ||
+ | '''Input/Output and GiD''' | ||
+ | * [[How to read a mdpa file]] | ||
+ | * [[How to use the GidIO]] | ||
* [[How to read a data file]] | * [[How to read a data file]] | ||
* [[How to plot graphs]] | * [[How to plot graphs]] | ||
+ | * [[How to create the problem_type.gid folder with the new problem type generator]] | ||
+ | * [[How to use the Isosurface Node Printer]] | ||
+ | '''Calculation tips for Kratos feasible from Python''' | ||
+ | * [[How to Calculate Distance Function]] | ||
+ | * [[How to Calculate Normals]] | ||
* [[How to execute an FFT analysis]] | * [[How to execute an FFT analysis]] | ||
* [[How to execute fitting of data series]] | * [[How to execute fitting of data series]] | ||
Line 44: | Line 81: | ||
* [[How to add automatic benchmarking to your example]] | * [[How to add automatic benchmarking to your example]] | ||
* [[How to use parallel Pardiso solver for your example]] | * [[How to use parallel Pardiso solver for your example]] | ||
− | |||
− | |||
* [[How to use the projection between no matching meshes]] | * [[How to use the projection between no matching meshes]] | ||
* [[How to use the ReduceTimeStep]] | * [[How to use the ReduceTimeStep]] | ||
Line 53: | Line 88: | ||
<!-- * [[How to include the restart in python]] --> | <!-- * [[How to include the restart in python]] --> | ||
* [[How to use the Cutting Application (Serial and Parallel)]] | * [[How to use the Cutting Application (Serial and Parallel)]] | ||
+ | * [[How to use external linear solvers and preconditioners]] | ||
* [[How to create a restart (python) file]] | * [[How to create a restart (python) file]] | ||
* [[How to use the Cutting Isosurface Application]] | * [[How to use the Cutting Isosurface Application]] | ||
− | * [[How to | + | * [[How to access a value in a 'Properties' block]] |
== C++ == | == C++ == | ||
+ | * [[How to use the Constitutive Law class]] | ||
+ | * [[How to use "Smart Pointers" within Kratos]] | ||
* [[How to Use the ModelPart]] | * [[How to Use the ModelPart]] | ||
+ | * [[How to Use the Meshes as Group]] | ||
* [[How to Add and Delete Components (Nodes, Elements, ...) from ModelPart]] | * [[How to Add and Delete Components (Nodes, Elements, ...) from ModelPart]] | ||
* [[How to Access Neighbor Nodes and Elements]] | * [[How to Access Neighbor Nodes and Elements]] | ||
* [[How to Access DataBase]] | * [[How to Access DataBase]] | ||
− | |||
* [[How to Create a New Application using cmake]] | * [[How to Create a New Application using cmake]] | ||
* [[How to Create New Element]] | * [[How to Create New Element]] | ||
+ | * [[How to use the geometry within an element]] | ||
* [[How to Use Solving Strategy]] | * [[How to Use Solving Strategy]] | ||
* [[How to understand Kratos Pointers]] | * [[How to understand Kratos Pointers]] | ||
Line 71: | Line 110: | ||
* [[How to Export Function/Classes to the Python]] | * [[How to Export Function/Classes to the Python]] | ||
* [[How to Interpolate Data]] | * [[How to Interpolate Data]] | ||
− | * [[How to | + | * [[How to Compile Kratos in Debug mode]] |
* [[How to debug with valgrind]] | * [[How to debug with valgrind]] | ||
* [[How to Add a Custom_Utilities File]] | * [[How to Add a Custom_Utilities File]] | ||
* [[How to Create a GiD Problem Type]] | * [[How to Create a GiD Problem Type]] | ||
− | * [[How to Add a New Condition]] | + | * [[How to Add a New Element (Condition)]] |
* [[How to Add a New constitutive law]] | * [[How to Add a New constitutive law]] | ||
− | |||
− | |||
* [[How to Add a New Variable]] | * [[How to Add a New Variable]] | ||
* [[How to use the Geometry]] | * [[How to use the Geometry]] | ||
Line 84: | Line 121: | ||
* [[How to use push_back]] | * [[How to use push_back]] | ||
* [[How to Create a executable without Python]] | * [[How to Create a executable without Python]] | ||
− | |||
− | |||
* [[How to apply face pressures]] | * [[How to apply face pressures]] | ||
− | + | * [[How to print values on Gauss points]] | |
− | * [[How to print values on | + | |
* [[How to use Serialization]] | * [[How to use Serialization]] | ||
+ | * [[How to Search neighbors]] | ||
* [[How to use Doxygen to generate documentation for our code]] | * [[How to use Doxygen to generate documentation for our code]] | ||
+ | * [[News for constitutive laws]] | ||
+ | * [[strategy_python]] | ||
+ | * [[Compiling lapack++ for 64 bit Windows]] | ||
+ | * [[Common errors ]] | ||
+ | * [[Some aspects of programing]] | ||
+ | * [[How to use the Spatial Containers]] | ||
+ | * [[How to solve linker errors]] | ||
== Debbuging and optimizing your code == | == Debbuging and optimizing your code == | ||
Line 98: | Line 140: | ||
* [[Checking memory use with Valgrind]] | * [[Checking memory use with Valgrind]] | ||
− | [[Category: | + | == Graphical User Interfaces == |
+ | * [[How the GiD Graphical User Interface communicates with Kratos]] | ||
+ | |||
+ | |||
+ | |||
+ | <!--== Theory Manual == | ||
+ | * [[GeneralTemplate]] | ||
+ | * [[MiguelAngel]] | ||
+ | * [[Kazem]] | ||
+ | * [[Computational Fluid Dynamic Module (CFDm)]] | ||
+ | * [[CFDm 1.Introduction]] | ||
+ | * [[CFDm 2.Structure]] | ||
+ | * [[CFDm 2.1.Fluid Types]] | ||
+ | * [[CFDm 2.2.Kinematical Approaches]] | ||
+ | * [[CFDm 2.3.Solution Strategies]] | ||
+ | * [[CFDm 2.4.Elements]] | ||
+ | * [[CFDm 2.5.Boundary Conditions]] | ||
+ | * [[CFDm 2.6.Initial Conditions]] | ||
+ | * [[CFDm 2.7.Turbulence Models]] | ||
+ | * [[CFDm 2.8.HPC]] | ||
+ | * [[CFDm 2.9.Problem Parameters]] | ||
+ | * [[CFDm 2.10.Other Relevant Aspects]] | ||
+ | * [[CFDm 3.Benchmarking]] | ||
+ | * [[CFDm 4.Tutorials]] | ||
+ | * [[CFDm 5.Contact People]] | ||
+ | * [[CFDm 6.Aknowledgements]] | ||
+ | * [[Computational Structural Mechanics Module (CSMm)]] | ||
+ | * [[CSMm 1.Introduction]] | ||
+ | * [[CSMm 2.Structure]] | ||
+ | * [[CSMm 2.1.Analysis Type]] | ||
+ | * [[CSMm 2.2.Elements]] | ||
+ | * [[CSMm 2.3.Boundary Conditions]] | ||
+ | * [[CSMm 2.4.Loads]] | ||
+ | * [[CSMm 2.5.Constitutive Laws]] | ||
+ | * [[CSMm 2.6.HPC]] | ||
+ | * [[CSMm 2.7.Problem Parameters]] | ||
+ | * [[CSMm 2.8.Other Relevant Aspects]] | ||
+ | * [[CSMm 3.Benchmarking]] | ||
+ | * [[CSMm 4.Tutorials]] | ||
+ | * [[CSMm 5.Contact People]] | ||
+ | * [[CSMm 6.Aknowledgements]] | ||
+ | * [[Convection Diffusion Module (CDm)]] | ||
+ | * [[CDm 1.Introduction]] | ||
+ | * [[CDm 2.Structure]] | ||
+ | * [[CDm 2.1.Analysis type]] | ||
+ | * [[CDm 2.2.Kinematical Approaches]] | ||
+ | * [[CDm 2.3.Solution Strategies]] | ||
+ | * [[CDm 2.4.Elements]] | ||
+ | * [[CDm 2.5.Boundary Conditions]] | ||
+ | * [[CDm 2.6.Initial Conditions]] | ||
+ | * [[CDm 2.7.HPC]] | ||
+ | * [[CDm 2.8.Problem Parameters]] | ||
+ | * [[CDm 2.9.Other Relevant Aspects]] | ||
+ | * [[CDm 3.Benchmarking]] | ||
+ | * [[CDm 4.Tutorials]] | ||
+ | * [[CDm 5.Contact People]] | ||
+ | * [[CDm 6.Aknowledgements]] | ||
+ | |||
+ | |||
+ | [[Category: Theory Manual]]--> |
Latest revision as of 11:48, 11 December 2017
This section is intended as a list of "recipes" for common needs in using the Kratos
Contents |
We have moved!
The development of Kratos Multiphysics has been moved to GitHub. You can find us in our GitHub project page. We are keeping this wiki until the migration is complete, but it will no longer be updated. Find up-to date documentation in the new GitHub wiki page.
General
- Installing kratos in Ubuntu Linux
- Installing kratos in Windows
- Installing kratos in macOS
- How to Compile Kratos on the Acuario Cluster
- How to Check Kratos is Correctly Installed in Windows
- How to Check Kratos is Correctly Installed in Linux
- How to subscribe to Kratos' mailing list
- How to Profile an application (using google-perftools)
- How to Measure memory consumption (using google-perftools)
- How to Profile an application (using OProfile)
- How to work with Groups (Meshes)
- How to make my application derivable
- How to use the PaStiX solver in Kratos
OpenMP Parallelism
- How to Learn OpenMP
- How to "survive" OpenMP parallelism
- How to force a scalar run
- How to use ThreadSanitizer to detect data race bugs
MPI Parallelism
- How to run your application in cluster
- How to compile the Boost if you want to use MPI
- How to use communicator for parallel synchronization
OpenCL Parallelism
- Introduction to OpenCL Programming
- Useful OpenCL links
- How to set up OpenCL
- How to debug OpenCL programs using GDB
- Support for double-precision floating point basic arithmetic in ATI Stream SDK (2.1 and later)
Git
Python
General Python Use for Kratos
- How to use Python
- How to Use an Application
- How to use parameters
- How to import Kratos from Python using the KratosMultiphysics module
- How to work with nodes and elements in python
- How to use multiple model parts
- How to construct a linear solver using the "Linear Solver Factory"
- How to construct the "solving strategies"
- How to create unitary tests
- How to create a new application
- strategy_python
- Operations
- How to acess the values of a Table
Input/Output and GiD
- How to read a mdpa file
- How to use the GidIO
- How to read a data file
- How to plot graphs
- How to create the problem_type.gid folder with the new problem type generator
- How to use the Isosurface Node Printer
Calculation tips for Kratos feasible from Python
- How to Calculate Distance Function
- How to Calculate Normals
- How to execute an FFT analysis
- How to execute fitting of data series
- How to run python recursively
- How to execute a SVD analysis
- How to add automatic benchmarking to your example
- How to use parallel Pardiso solver for your example
- How to use the projection between no matching meshes
- How to use the ReduceTimeStep
- How to transfer nodal values between non-matching meshes
- How to use the OpenCL linear solvers
- How to refine an existing triangular or tetrahedral mesh
- How to use the Cutting Application (Serial and Parallel)
- How to use external linear solvers and preconditioners
- How to create a restart (python) file
- How to use the Cutting Isosurface Application
- How to access a value in a 'Properties' block
C++
- How to use the Constitutive Law class
- How to use "Smart Pointers" within Kratos
- How to Use the ModelPart
- How to Use the Meshes as Group
- How to Add and Delete Components (Nodes, Elements, ...) from ModelPart
- How to Access Neighbor Nodes and Elements
- How to Access DataBase
- How to Create a New Application using cmake
- How to Create New Element
- How to use the geometry within an element
- How to Use Solving Strategy
- How to understand Kratos Pointers
- How to Use the std::vector (and the kratos containers)
- How to Use Ublas
- How to Export Function/Classes to the Python
- How to Interpolate Data
- How to Compile Kratos in Debug mode
- How to debug with valgrind
- How to Add a Custom_Utilities File
- How to Create a GiD Problem Type
- How to Add a New Element (Condition)
- How to Add a New constitutive law
- How to Add a New Variable
- How to use the Geometry
- How to Create Multi-step Elements
- How to use push_back
- How to Create a executable without Python
- How to apply face pressures
- How to print values on Gauss points
- How to use Serialization
- How to Search neighbors
- How to use Doxygen to generate documentation for our code
- News for constitutive laws
- strategy_python
- Compiling lapack++ for 64 bit Windows
- Common errors
- Some aspects of programing
- How to use the Spatial Containers
- How to solve linker errors
Debbuging and optimizing your code
- Debugging the Application
- Profiling the Kratos
- How to Profile (Measure Time Consumption)
- Checking memory use with Valgrind
Graphical User Interfaces