Core classes provided by the library. More...
Collaboration diagram for Core:Classes | |
| class | Feel::Application |
| provides information about the Application More... | |
| class | Feel::AssertContext |
| contains details about a failed assertion More... | |
| class | Feel::Environment |
| Initialize, finalize, and query the Feel++ environment. More... | |
| class | Feel::Factory< AbstractProduct, IdentifierType, ProductCreator, FactoryErrorPolicy > |
| Implements a generic object Factory. More... | |
| class | Feel::FactoryClone< AbstractProduct, ProductCreator, FactoryErrorPolicy > |
| Implements a generic cloning object Factory. More... | |
| class | Feel::math::Constant< Tag, Rep > |
| Structure that holds a constant with different numerical representation. More... | |
| class | Feel::MemoryUsage |
| class to query for memory usage More... | |
| class | Feel::meta::Context< StorageType > |
| Context class. More... | |
| class | Feel::Singleton< T > |
| implement the Singleton pattern More... | |
| class | Feel::TypeInfo |
| wrapper for std::type_info More... | |
| class | Feel::VisitorBase |
| The base class of any Acyclic Visitor. More... | |
| class | Feel::VisitorBaseImpl< TList, R > |
| Implements non-strict visitation (you can implement only part of the Visit functions) More... | |
| class | Feel::WorldComm |
| Provides interface to MPI Communicators. More... | |
Typedefs | |
| using | Feel::worldcomm_ptr_t = std::shared_ptr< WorldComm > |
| WorldComm shared_ptr alias type. | |
| using | Feel::worldcomm_t = WorldComm |
| WorldComm alias type. | |
| using | Feel::worldscomm_ptr_t = std::vector< worldcomm_ptr_t > |
| WorldsComm shared_ptr alias type. | |
Enumerations | |
| enum | Feel::DebugLevels { DEBUG_INFO = 0 , DEBUG_WARN = 1 , DEBUG_ERROR = 2 , DEBUG_FATAL = 3 } |
| Area debugging tool. More... | |
Functions | |
| AboutData | Feel::makeAboutDefault (std::string name) |
default makeAbout function to define the AboutData structure of the Feel++ application More... | |
| worldscomm_ptr_t | Feel::makeWorldsComm (int n, WorldComm &wc) |
Create a WorldsComm shared_ptr of size n from cloning wc. More... | |
| worldscomm_ptr_t | Feel::makeWorldsComm (int n, worldcomm_ptr_t const &wc) |
Create a WorldsComm shared_ptr of size n from cloning shared_ptr wc. More... | |
| std::string | Feel::prefixvm (std::string const &prefix, std::string const &opt, std::string const &sep=".") |
| Function that compute the command line option prefix for the option variable map. More... | |
| template<typename T > | |
| std::vector< T > | Feel::range (T &&beg, T &&end) |
return a range of integers between beg and end with a step of 1 More... | |
| template<typename T > | |
| std::vector< T > | Feel::range (T &&beg, T &&end, T &&step) |
| Provides range of integers. More... | |
| template<typename T > | |
| std::vector< T > | Feel::range (T &&end) |
return a range of integers between 0 and end with a step of 1 More... | |
| std::string | Feel::sanitize (std::string const &s) |
| trim string to remove special characters More... | |
Variables | |
| constexpr bool | do_reduce = true |
Log if condition satisfied when NDEBUG is not defined. More... | |
Core classes provided by the library.
It is a good practice to check expected conditions in your program frequently to detect errors as early as possible. Feel++ uses google-glog and its CHECK macros for this purpose.
The CHECK macro provides the ability to abort the application when a condition is not met, similar to the assert macro defined in the standard C library.
Feel defines a number of types that are used in the library.
real32_type 32 bits real number typereal64_type 64 bits real number typeFeel defines a number of integer type that have controlled bit size. These types are constructed automatically by Feel in order to have platform independent integer types.
Here is the list of signed integers:
int1_type a 1 bit signed integerint8_type a 8 bit signed integerint16_type a 16 bit signed integerint32_type a 32 bit signed integerint64_type a 64 bit signed integerHere is the list of unsigned integers:
uint1_type a 1 bit unsigned integeruint8_type a 8 bit unsigned integeruint16_type a 16 bit unsigned integeruint32_type a 32 bit unsigned integeruint64_type a 64 bit unsigned integerFeel defines a number of useful aliases for integers
dim_type an alias to uint16_type used to identify dimensionsrank_type an alias to uint16_type used for mpi process rankssize_type an alias to size_t used as indices for arrays, vectors or matricesFeel++ defines also some invalid number associated to each unsigned integer types. it usually serves to identify a situation where something went wrong. The invalid value corresponds to the maximum value of the unsigned type.
| enum Feel::DebugLevels |
#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feelcore/debug.cpp>
Area debugging tool.
VLOG(1) provides a debug stream to which you can pass a number, say 100, associated to an area of the code, say a class A. In the implementation of the class A, you use debug statement like
void A::f() { DVLOG(2) << "A::f() is called.\n"; do something here }
Now the debug message "A::f() is called." will be seen only if the area 100 is defined in the environment(shell) variable DEBUG while executing a program A::f() is called runWithA that makes use of our class A.
runwithA --> no debug message related to A export DEBUG="100" runwithA A::f() is called.
With this tool you can select the area you want to debug explicitly while keeping the others hidden.
| FEELPP_EXPORT AboutData Feel::makeAboutDefault | ( | std::string | name | ) |
#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feelcore/environment.cpp>
default makeAbout function to define the AboutData structure of the Feel++ application
| name | name or short name of the application |
| worldscomm_ptr_t Feel::makeWorldsComm | ( | int | n, |
| WorldComm & | wc | ||
| ) |
Create a WorldsComm shared_ptr of size n from cloning wc.
| n | size of the WorldsComm |
| wc | WorldComm to be cloned to fill the WorldsComm entries |
| worldscomm_ptr_t Feel::makeWorldsComm | ( | int | n, |
| worldcomm_ptr_t const & | wc | ||
| ) |
Create a WorldsComm shared_ptr of size n from cloning shared_ptr wc.
| n | size of the WorldsComm |
| wc | shares_ptr WorldComm to be cloned to fill the WorldsComm entries |
| std::string Feel::prefixvm | ( | std::string const & | prefix, |
| std::string const & | opt, | ||
| std::string const & | sep = "." |
||
| ) |
Function that compute the command line option prefix for the option variable map.
| prefix | prefix |
| opt | option |
| sep | separator between sections of the option |
Referenced by Feel::FeelModels::ModelPhysic< Dim >::hasParameter(), and Feel::FeelModels::ModelMeasuresStorageValues::updateParameterValues().
| std::vector< T > Feel::range | ( | T && | beg, |
| T && | end | ||
| ) |
return a range of integers between beg and end with a step of 1
References Feel::range().
| std::vector< T > Feel::range | ( | T && | beg, |
| T && | end, | ||
| T && | step | ||
| ) |
Provides range of integers.
range(stop)
This is a versatile function to create lists containing arithmetic progressions. It is most often used in for loops. The arguments must be plain integers. If the step argument is omitted, it defaults to 1. If the start argument is omitted, it defaults to 0. The full form returns a list of plain integers [start, start + step, start + 2 * step, ...]. If step is positive, the last element is the largest start + i * step less than stop; if step is negative, the last element is the smallest start + i * step greater than stop. step must not be zero.
Referenced by Feel::TwoSpacesMap< SpaceType >::build(), Feel::vf::evaluate(), Feel::vf::minmax(), Feel::vf::normLinf(), Feel::range(), Feel::rank(), Feel::TimeSet::save(), and Feel::FeelModels::FluidMechanics< ConvexType, BasisVelocityType, BasisPressureType >::BodyBoundaryCondition::updateElasticVelocityWithRotation().
| std::vector< T > Feel::range | ( | T && | end | ) |
return a range of integers between 0 and end with a step of 1
References Feel::range().
| std::string Feel::sanitize | ( | std::string const & | s | ) |
trim string to remove special characters
trim string removing all leading and trailing spaces and replace all special characters " ;:," inside the block by a _
| s | a string to be trimmed |
Referenced by Feel::detail::ExportFieldSet< MeshType, N >::add(), and Feel::detail::ExportFieldSet< MeshType, N >::addRegions().
|
constexpr |
Log if condition satisfied when NDEBUG is not defined.
This macro is enabled only if NDEBUG is not defined which is to say that the macro will be activited when debugging
enable reduce for mpi communication