OGS
|
Namespaces | |
namespace | detail |
namespace | details |
namespace | KelvinVector |
namespace | LinAlg |
namespace | Nonlinear |
namespace | ODE |
namespace | VectorizedTensor |
Typedefs | |
template<typename IndexType > | |
using | SparsityPattern = std::vector<IndexType> |
A vector telling how many nonzeros there are in each global matrix row. | |
Enumerations | |
enum | TriangleTest { GAUSS , BARYCENTRIC } |
enum class | VecNormType { NORM1 , NORM2 , INFINITY_N , INVALID } |
enum class | LinearSolverBehaviour : int { RECOMPUTE , RECOMPUTE_AND_STORE , REUSE } |
Functions | |
PiecewiseLinearCurveConfig | parsePiecewiseLinearCurveConfig (BaseLib::ConfigTree const &config) |
std::vector< double > | readDoublesFromBinaryFile (const std::string &filename) |
template<typename CurveType > | |
std::unique_ptr< CurveType > | createPiecewiseLinearCurve (BaseLib::ConfigTree const &config) |
template<int D, typename M > | |
constexpr Eigen::CwiseNullaryOp< EigenBlockMatrixViewFunctor< D, M >, typename EigenBlockMatrixViewFunctor< D, M >::Matrix > | eigenBlockMatrixView (const Eigen::MatrixBase< M > &matrix) |
double | orientation3d (MathLib::Point3d const &p, MathLib::Point3d const &a, MathLib::Point3d const &b, MathLib::Point3d const &c) |
double | calcTetrahedronVolume (MathLib::Point3d const &a, MathLib::Point3d const &b, MathLib::Point3d const &c, MathLib::Point3d const &d) |
double | calcTriangleArea (MathLib::Point3d const &a, MathLib::Point3d const &b, MathLib::Point3d const &c) |
bool | isPointInTetrahedron (MathLib::Point3d const &p, MathLib::Point3d const &a, MathLib::Point3d const &b, MathLib::Point3d const &c, MathLib::Point3d const &d, double eps) |
bool | isPointInTriangle (MathLib::Point3d const &p, MathLib::Point3d const &a, MathLib::Point3d const &b, MathLib::Point3d const &c, double eps_pnt_out_of_plane, double eps_pnt_out_of_tri, MathLib::TriangleTest algorithm) |
bool | gaussPointInTriangle (MathLib::Point3d const &q, MathLib::Point3d const &a, MathLib::Point3d const &b, MathLib::Point3d const &c, double eps_pnt_out_of_plane, double eps_pnt_out_of_tri) |
bool | barycentricPointInTriangle (MathLib::Point3d const &p, MathLib::Point3d const &a, MathLib::Point3d const &b, MathLib::Point3d const &c, double eps_pnt_out_of_plane, double eps_pnt_out_of_tri) |
bool | isPointInTriangleXY (MathLib::Point3d const &p, MathLib::Point3d const &a, MathLib::Point3d const &b, MathLib::Point3d const &c) |
bool | dividedByPlane (const MathLib::Point3d &a, const MathLib::Point3d &b, const MathLib::Point3d &c, const MathLib::Point3d &d) |
bool | isCoplanar (const MathLib::Point3d &a, const MathLib::Point3d &b, const MathLib::Point3d &c, const MathLib::Point3d &d) |
Checks if the four given points are located on a plane. | |
static std::array< std::array< double, 3 >, GaussLegendreTet< 3 >::NPoints > | initGLTet3X () |
static std::array< std::array< double, 3 >, GaussLegendreTet< 4 >::NPoints > | initGLTet4X () |
template<typename Matrix > | |
Eigen::Map< Matrix > | createZeroedMatrix (std::vector< double > &data, Eigen::MatrixXd::Index rows, Eigen::MatrixXd::Index cols) |
Eigen::Map< Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > > | createZeroedMatrix (std::vector< double > &data, Eigen::MatrixXd::Index rows, Eigen::MatrixXd::Index cols) |
template<typename Matrix > | |
Eigen::Map< const Matrix > | toMatrix (std::vector< double > const &data, Eigen::MatrixXd::Index rows, Eigen::MatrixXd::Index cols) |
Eigen::Map< const Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > > | toMatrix (std::vector< double > const &data, Eigen::MatrixXd::Index rows, Eigen::MatrixXd::Index cols) |
template<typename Matrix > | |
Eigen::Map< Matrix > | toMatrix (std::vector< double > &data, Eigen::MatrixXd::Index rows, Eigen::MatrixXd::Index cols) |
Eigen::Map< Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > > | toMatrix (std::vector< double > &data, Eigen::MatrixXd::Index rows, Eigen::MatrixXd::Index cols) |
template<typename Vector > | |
Eigen::Map< Vector > | createZeroedVector (std::vector< double > &data, Eigen::VectorXd::Index size) |
template<typename Vector > | |
Eigen::Map< const Vector > | toVector (std::vector< double > const &data, Eigen::VectorXd::Index size) |
Creates an Eigen mapped vector from the given data vector. | |
template<typename Vector > | |
Eigen::Map< Vector > | toVector (std::vector< double > &data, Eigen::VectorXd::Index size) |
Creates an Eigen mapped vector from the given data vector. | |
Eigen::Map< const Eigen::VectorXd > | toVector (std::vector< double > const &data) |
Eigen::Map< Eigen::VectorXd > | toVector (std::vector< double > &data) |
void | applyKnownSolution (EigenMatrix &A, EigenVector &b, EigenVector &, const std::vector< EigenMatrix::IndexType > &vec_knownX_id, const std::vector< double > &vec_knownX_x) |
template<typename MAT_T > | |
bool | finalizeMatrixAssembly (MAT_T &) |
template<typename VEC_T > | |
void | finalizeVectorAssembly (VEC_T &) |
General function to finalize the vector assembly. | |
std::string | convertVecNormTypeToString (VecNormType normType) |
convert VecNormType to string | |
VecNormType | convertStringToVecNormType (const std::string &str) |
convert string to VecNormType | |
void | ignoreOtherLinearSolvers (const BaseLib::ConfigTree &config, const std::string &solver_name) |
bool | checkLisError (int err) |
bool | finalizeMatrixAssembly (LisMatrix &mat) |
finish assembly to make this matrix be ready for use | |
SPECIALIZE_MATRIX_VECTOR_TRAITS (PETScMatrix, PETScMatrix::IndexType) | |
SPECIALIZE_MATRIX_VECTOR_TRAITS (PETScVector, PETScVector::IndexType) | |
bool | finalizeMatrixAssembly (PETScMatrix &mat, const MatAssemblyType asm_type=MAT_FINAL_ASSEMBLY) |
General interface for the matrix assembly. | |
void | applyKnownSolution (PETScMatrix &A, PETScVector &b, PETScVector &x, const std::vector< PetscInt > &vec_knownX_id, const std::vector< PetscScalar > &vec_knownX_x) |
apply known solutions to a system of linear equations | |
void | finalizeVectorAssembly (PETScVector &vec) |
Function to finalize the vector assembly. | |
template<typename MATRIX , typename SPARSITY_PATTERN > | |
void | setMatrixSparsity (MATRIX &matrix, SPARSITY_PATTERN const &sparsity_pattern) |
void | setVector (PETScVector &v, std::initializer_list< double > values) |
void | setVector (PETScVector &v, MatrixVectorTraits< PETScVector >::Index const index, double const value) |
void | setMatrix (PETScMatrix &m, std::initializer_list< double > values) |
void | setMatrix (PETScMatrix &m, Eigen::MatrixXd const &tmp) |
void | addToMatrix (PETScMatrix &m, std::initializer_list< double > values) |
double | calcProjPntToLineAndDists (Point3d const &pp, Point3d const &pa, Point3d const &pb, double &lambda, double &d0) |
double | getAngle (Point3d const &p0, Point3d const &p1, Point3d const &p2) |
MathLib::Point3d | operator* (Eigen::Matrix3d const &mat, MathLib::Point3d const &p) |
double | sqrDist (MathLib::Point3d const &p0, MathLib::Point3d const &p1) |
bool | lessEq (Point3d const &a, Point3d const &b, double eps) |
bool | operator< (Point3d const &a, Point3d const &b) |
std::ostream & | operator<< (std::ostream &os, const Point3d &p) |
bool | operator== (Point3d const &a, Point3d const &b) |
double | sqrDist2d (MathLib::Point3d const &p0, MathLib::Point3d const &p1) |
std::ostream & | operator<< (std::ostream &os, MathLib::WeightedPoint const &wp) |
Variables | |
static const double | p = 0.1126879257180162 / 6. |
static const double | q = 0.0734930431163619 / 6. |
static const double | r = 0.0425460207770812 / 6. |
static const double | s = 81. / 2240. / 6. |
static const double | t = 161051. / 2304960. / 6. |
static const double | u = 409. / 31395. / 6. |
static const double | v = 2679769. / 32305455. / 6. |
const Point3d | ORIGIN {{{0.0, 0.0, 0.0}}} |
using MathLib::SparsityPattern = std::vector<IndexType> |
A vector telling how many nonzeros there are in each global matrix row.
Definition at line 19 of file SparsityPattern.h.
|
strong |
Enumerator | |
---|---|
RECOMPUTE | |
RECOMPUTE_AND_STORE | |
REUSE |
Definition at line 15 of file LinearSolverBehaviour.h.
Enumerator | |
---|---|
GAUSS | |
BARYCENTRIC |
Definition at line 19 of file GeometricBasics.h.
|
strong |
Norm type. Not declared as class type in order to use the members as integers.
Enumerator | |
---|---|
NORM1 | \(\sum_i |x_i|\) |
NORM2 | \(\sqrt(\sum_i (x_i)^2)\) |
INFINITY_N | \(\mathrm{max}_i |x_i|\) |
INVALID |
Definition at line 22 of file LinAlgEnums.h.
void MathLib::addToMatrix | ( | PETScMatrix & | m, |
std::initializer_list< double > | values ) |
Definition at line 71 of file UnifiedMatrixSetters.cpp.
References MathLib::PETScMatrix::add(), MathLib::PETScMatrix::getNumberOfColumns(), MathLib::PETScMatrix::getNumberOfRows(), and r.
Referenced by setMatrix().
void MathLib::applyKnownSolution | ( | EigenMatrix & | A, |
EigenVector & | b, | ||
EigenVector & | , | ||
const std::vector< EigenMatrix::IndexType > & | vec_knownX_id, | ||
const std::vector< double > & | vec_knownX_x ) |
apply known solutions to a system of linear equations
A | Coefficient matrix |
b | RHS vector |
vec_knownX_id | a vector of known solution entry IDs |
vec_knownX_x | a vector of known solutions |
Definition at line 17 of file EigenTools.cpp.
References MathLib::EigenMatrix::getRawMatrix(), and MathLib::EigenVector::getRawVector().
Referenced by NumLib::TimeDiscretizedODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Newton >::applyKnownSolutionsNewton(), NumLib::TimeDiscretizedODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Newton >::applyKnownSolutionsPETScSNES(), and NumLib::TimeDiscretizedODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Picard >::applyKnownSolutionsPicard().
void MathLib::applyKnownSolution | ( | PETScMatrix & | A, |
PETScVector & | b, | ||
PETScVector & | x, | ||
const std::vector< PetscInt > & | vec_knownX_id, | ||
const std::vector< PetscScalar > & | vec_knownX_x ) |
apply known solutions to a system of linear equations
A | Coefficient matrix |
b | RHS vector |
x | Solution vector |
vec_knownX_id | A vector of known solution entry IDs |
vec_knownX_x | A vector of known solutions |
Definition at line 21 of file PETScTools.cpp.
References MathLib::PETScMatrix::finalizeAssembly(), MathLib::PETScVector::finalizeAssembly(), OGS_FATAL, MathLib::PETScVector::set(), and MathLib::PETScMatrix::setRowsColumnsZero().
bool MathLib::barycentricPointInTriangle | ( | MathLib::Point3d const & | p, |
MathLib::Point3d const & | a, | ||
MathLib::Point3d const & | b, | ||
MathLib::Point3d const & | c, | ||
double | eps_pnt_out_of_plane = std::numeric_limits< float >::epsilon(), | ||
double | eps_pnt_out_of_tri = std::numeric_limits< float >::epsilon() ) |
Tests if the given point p is within the triangle, defined by its edge nodes a, b and c. Using two eps-values it is possible to test an 'epsilon' neighbourhood around the triangle as well as an 'epsilon' outside the triangles plane. Algorithm based on "Fundamentals of Computer Graphics" by Peter Shirley.
p | test point |
a | edge node of triangle |
b | edge node of triangle |
c | edge node of triangle |
eps_pnt_out_of_plane | eps allowing for p to be slightly off the plane spanned by abc |
eps_pnt_out_of_tri | eps allowing for p to be slightly off outside of abc |
Definition at line 148 of file GeometricBasics.cpp.
References MathLib::Point3d::asEigenVector3d(), calcTriangleArea(), orientation3d(), and p.
Referenced by isPointInTriangle().
double MathLib::calcProjPntToLineAndDists | ( | MathLib::Point3d const & | pp, |
MathLib::Point3d const & | pa, | ||
MathLib::Point3d const & | pb, | ||
double & | lambda, | ||
double & | d0 ) |
calcProjPntToLineAndDists computes the orthogonal projection of a point p to the line described by the points a and b, \(g(\lambda) = a + \lambda (b - a)\), the distance between p and the projected point and the distances between the projected point and the end points pa, pb of the line
pp | the (mesh) point |
pa | first point of line |
pb | second point of line |
lambda | the projected point described by the line equation above |
d0 | distance of the projected point to line point a |
Definition at line 19 of file MathTools.cpp.
References MathLib::Point3d::asEigenVector3d(), p, and v.
Referenced by GeoLib::Polyline::getDistanceAlongPolyline(), and MeshLib::LineRule::isPntInElement().
double MathLib::calcTetrahedronVolume | ( | MathLib::Point3d const & | a, |
MathLib::Point3d const & | b, | ||
MathLib::Point3d const & | c, | ||
MathLib::Point3d const & | d ) |
Calculates the volume of a tetrahedron. The formula is V=1/6*|a(b x c)| with a=x1->x2, b=x1->x3 and c=x1->x4.
Definition at line 30 of file GeometricBasics.cpp.
References MathLib::Point3d::asEigenVector3d(), u, and v.
Referenced by MeshLib::HexRule::computeVolume(), MeshLib::PrismRule::computeVolume(), MeshLib::PyramidRule::computeVolume(), and MeshLib::TetRule::computeVolume().
double MathLib::calcTriangleArea | ( | MathLib::Point3d const & | a, |
MathLib::Point3d const & | b, | ||
MathLib::Point3d const & | c ) |
Calculates the area of the triangle defined by its edge nodes a, b and c. The formula is \(A= \frac{1}{2} \cdot |u \times v|\), i.e. half of the area of the parallelogram specified by the vectors \(u=b-a\) and \(v=c-a\).
Definition at line 41 of file GeometricBasics.cpp.
References MathLib::Point3d::asEigenVector3d(), u, and v.
Referenced by barycentricPointInTriangle(), MeshLib::QuadRule::computeVolume(), MeshLib::TriRule::computeVolume(), and GeoLib::IO::TINInterface::readTIN().
|
inline |
check Lis error codes
err | Lis error code |
Definition at line 31 of file LisCheck.h.
References ERR().
Referenced by MathLib::LisMatrix::LisMatrix(), MathLib::LisMatrix::LisMatrix(), MathLib::LisMatrix::~LisMatrix(), MathLib::SetMatrixSparsity< LisMatrix, SPARSITY_PATTERN >::operator()(), MathLib::LisMatrix::setZero(), MathLib::LisVector::size(), and MathLib::EigenLisLinearSolver::solve().
VecNormType MathLib::convertStringToVecNormType | ( | const std::string & | str | ) |
convert string to VecNormType
Definition at line 32 of file LinAlgEnums.cpp.
References INFINITY_N, INVALID, NORM1, and NORM2.
Referenced by NumLib::createConvergenceCriterionDeltaX(), NumLib::createConvergenceCriterionPerComponentDeltaX(), NumLib::createConvergenceCriterionPerComponentResidual(), and NumLib::createConvergenceCriterionResidual().
std::string MathLib::convertVecNormTypeToString | ( | VecNormType | normType | ) |
convert VecNormType to string
Definition at line 17 of file LinAlgEnums.cpp.
References INFINITY_N, NORM1, and NORM2.
std::unique_ptr< CurveType > MathLib::createPiecewiseLinearCurve | ( | BaseLib::ConfigTree const & | config | ) |
Create a curve
config | ConfigTree object has a tag of <curve> |
Definition at line 40 of file CreatePiecewiseLinearCurve.h.
References parsePiecewiseLinearCurveConfig().
Referenced by MaterialLib::PorousMedium::createCapillaryPressureModel(), MaterialLib::PorousMedium::createRelativePermeabilityModel(), and ProjectData::parseCurves().
Eigen::Map< Matrix > MathLib::createZeroedMatrix | ( | std::vector< double > & | data, |
Eigen::MatrixXd::Index | rows, | ||
Eigen::MatrixXd::Index | cols ) |
Creates an Eigen mapped matrix having its entries stored in the given data
vector.
data
vector must have zero size. data
has size rows
* cols
.Definition at line 32 of file EigenMapTools.h.
Referenced by ProcessLib::ThermoRichardsMechanics::ThermoRichardsMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunction, DisplacementDim, ConstitutiveTraits >::addToLocalMatrixData(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assemble(), ProcessLib::HeatConduction::LocalAssemblerData< ShapeFunction, GlobalDim >::assemble(), ProcessLib::HeatTransportBHE::HeatTransportBHELocalAssemblerBHE< ShapeFunction, BHEType >::assemble(), ProcessLib::HeatTransportBHE::HeatTransportBHELocalAssemblerSoil< ShapeFunction >::assemble(), ProcessLib::HT::MonolithicHTFEM< ShapeFunction, GlobalDim >::assemble(), ProcessLib::RichardsComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assemble(), ProcessLib::RichardsFlow::LocalAssemblerData< ShapeFunction, GlobalDim >::assemble(), ProcessLib::RichardsMechanics::RichardsMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::assemble(), ProcessLib::SteadyStateDiffusion::LocalAssemblerData< ShapeFunction, GlobalDim >::assemble(), ProcessLib::StokesFlow::LocalAssemblerData< ShapeFunctionLiquidVelocity, ShapeFunctionPressure, GlobalDim >::assemble(), ProcessLib::TES::TESLocalAssembler< ShapeFunction_, GlobalDim >::assemble(), ProcessLib::TH2M::TH2MLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::assemble(), ProcessLib::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPLocalAssembler< ShapeFunction, GlobalDim >::assemble(), ProcessLib::ThermoRichardsFlow::ThermoRichardsFlowLocalAssembler< ShapeFunction, GlobalDim >::assemble(), ProcessLib::TwoPhaseFlowWithPP::TwoPhaseFlowWithPPLocalAssembler< ShapeFunction, GlobalDim >::assemble(), ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoLocalAssembler< ShapeFunction, GlobalDim >::assemble(), ProcessLib::WellboreSimulator::WellboreSimulatorFEM< ShapeFunction, GlobalDim >::assemble(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleComponentTransportEquation(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleHeatTransportEquation(), ProcessLib::HT::StaggeredHTFEM< ShapeFunction, GlobalDim >::assembleHeatTransportEquation(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleHydraulicEquation(), ProcessLib::HT::StaggeredHTFEM< ShapeFunction, GlobalDim >::assembleHydraulicEquation(), ProcessLib::LiquidFlow::LiquidFlowLocalAssembler< ShapeFunction, GlobalDim >::assembleMatrixAndVector(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleReactionEquationConcrete(), ProcessLib::CentralDifferencesJacobianAssembler::assembleWithJacobian(), ProcessLib::ForwardDifferencesJacobianAssembler::assembleWithJacobian(), ProcessLib::HeatConduction::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleWithJacobian(), ProcessLib::HeatTransportBHE::HeatTransportBHELocalAssemblerBHE< ShapeFunction, BHEType >::assembleWithJacobian(), ProcessLib::HeatTransportBHE::HeatTransportBHELocalAssemblerSoil< ShapeFunction >::assembleWithJacobian(), ProcessLib::HydroMechanics::HydroMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::assembleWithJacobian(), ProcessLib::LargeDeformation::LargeDeformationLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobian(), ProcessLib::LIE::SmallDeformation::SmallDeformationLocalAssemblerMatrix< ShapeFunction, DisplacementDim >::assembleWithJacobian(), ProcessLib::RichardsMechanics::RichardsMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::assembleWithJacobian(), ProcessLib::SmallDeformation::SmallDeformationLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobian(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobian(), ProcessLib::TH2M::TH2MLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::assembleWithJacobian(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::assembleWithJacobian(), ProcessLib::ThermoMechanics::ThermoMechanicsLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobian(), ProcessLib::ThermoRichardsFlow::ThermoRichardsFlowLocalAssembler< ShapeFunction, GlobalDim >::assembleWithJacobian(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleWithJacobianComponentTransportEquation(), ProcessLib::HydroMechanics::HydroMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::assembleWithJacobianForDeformationEquations(), ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobianForDeformationEquations(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobianForDeformationEquations(), ProcessLib::ThermoMechanics::ThermoMechanicsLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobianForDeformationEquations(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobianForHeatConductionEquations(), ProcessLib::ThermoMechanics::ThermoMechanicsLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobianForHeatConductionEquations(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobianForPhaseFieldEquations(), ProcessLib::HydroMechanics::HydroMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::assembleWithJacobianForPressureEquations(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleWithJacobianHydraulicEquation(), ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobianPhaseFieldEquations(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::calculateIntPtDarcyVelocity(), createZeroedMatrix(), ProcessLib::HydroMechanics::HydroMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::getEpsilon(), ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::getEpsilon(), ProcessLib::getIntegrationPointDimMatrixData(), ProcessLib::getIntegrationPointKelvinVectorData(), ProcessLib::getIntegrationPointScalarData(), ProcessLib::HydroMechanics::HydroMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::getIntPtDarcyVelocity(), ProcessLib::LIE::HydroMechanics::HydroMechanicsLocalAssemblerMatrix< ShapeFunctionDisplacement, ShapeFunctionPressure, GlobalDim >::getIntPtDarcyVelocity(), ProcessLib::LiquidFlow::LiquidFlowLocalAssembler< ShapeFunction, GlobalDim >::getIntPtDarcyVelocity(), ProcessLib::RichardsComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::getIntPtDarcyVelocity(), ProcessLib::RichardsFlow::LocalAssemblerData< ShapeFunction, GlobalDim >::getIntPtDarcyVelocity(), ProcessLib::SteadyStateDiffusion::LocalAssemblerData< ShapeFunction, GlobalDim >::getIntPtDarcyVelocity(), ProcessLib::TES::TESLocalAssembler< ShapeFunction_, GlobalDim >::getIntPtDarcyVelocity(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::getIntPtDarcyVelocity(), ProcessLib::ThermoRichardsFlow::ThermoRichardsFlowLocalAssembler< ShapeFunction, GlobalDim >::getIntPtDarcyVelocity(), ProcessLib::HT::HTFEM< ShapeFunction, GlobalDim >::getIntPtDarcyVelocityLocal(), ProcessLib::LIE::HydroMechanics::HydroMechanicsLocalAssemblerFracture< ShapeFunctionDisplacement, ShapeFunctionPressure, GlobalDim >::getIntPtFractureStress(), ProcessLib::LIE::SmallDeformation::SmallDeformationLocalAssemblerFracture< ShapeFunction, DisplacementDim >::getIntPtFractureStress(), ProcessLib::LIE::HydroMechanics::HydroMechanicsLocalAssemblerFracture< ShapeFunctionDisplacement, ShapeFunctionPressure, GlobalDim >::getIntPtFractureVelocity(), ProcessLib::HeatConduction::LocalAssemblerData< ShapeFunction, GlobalDim >::getIntPtHeatFlux(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::getIntPtHeatFlux(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::getIntPtMolarFlux(), and ProcessLib::Deformation::CollectIntegrationPointDataForExtrapolation< InternalVariable >::operator()().
|
inline |
Creates an Eigen mapped matrix having its entries stored in the given data
vector.
This is a convenience method which makes the specification of dynamically allocated Eigen matrices as return type easier.
Definition at line 57 of file EigenMapTools.h.
References createZeroedMatrix().
Eigen::Map< Vector > MathLib::createZeroedVector | ( | std::vector< double > & | data, |
Eigen::VectorXd::Index | size ) |
Creates an Eigen mapped vector having its entries stored in the given data
vector.
data
vector must have zero size. data
has size size
. Definition at line 153 of file EigenMapTools.h.
Referenced by ProcessLib::ThermoRichardsMechanics::ThermoRichardsMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunction, DisplacementDim, ConstitutiveTraits >::addToLocalMatrixData(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assemble(), ProcessLib::HT::MonolithicHTFEM< ShapeFunction, GlobalDim >::assemble(), ProcessLib::RichardsComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assemble(), ProcessLib::RichardsFlow::LocalAssemblerData< ShapeFunction, GlobalDim >::assemble(), ProcessLib::RichardsMechanics::RichardsMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::assemble(), ProcessLib::StokesFlow::LocalAssemblerData< ShapeFunctionLiquidVelocity, ShapeFunctionPressure, GlobalDim >::assemble(), ProcessLib::TES::TESLocalAssembler< ShapeFunction_, GlobalDim >::assemble(), ProcessLib::TH2M::TH2MLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::assemble(), ProcessLib::ThermalTwoPhaseFlowWithPP::ThermalTwoPhaseFlowWithPPLocalAssembler< ShapeFunction, GlobalDim >::assemble(), ProcessLib::ThermoRichardsFlow::ThermoRichardsFlowLocalAssembler< ShapeFunction, GlobalDim >::assemble(), ProcessLib::TwoPhaseFlowWithPP::TwoPhaseFlowWithPPLocalAssembler< ShapeFunction, GlobalDim >::assemble(), ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoLocalAssembler< ShapeFunction, GlobalDim >::assemble(), ProcessLib::WellboreSimulator::WellboreSimulatorFEM< ShapeFunction, GlobalDim >::assemble(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleHydraulicEquation(), ProcessLib::HT::StaggeredHTFEM< ShapeFunction, GlobalDim >::assembleHydraulicEquation(), ProcessLib::LiquidFlow::LiquidFlowLocalAssembler< ShapeFunction, GlobalDim >::assembleMatrixAndVector(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleReactionEquationConcrete(), ProcessLib::CentralDifferencesJacobianAssembler::assembleWithJacobian(), ProcessLib::ForwardDifferencesJacobianAssembler::assembleWithJacobian(), ProcessLib::HeatConduction::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleWithJacobian(), ProcessLib::HeatTransportBHE::HeatTransportBHELocalAssemblerBHE< ShapeFunction, BHEType >::assembleWithJacobian(), ProcessLib::HeatTransportBHE::HeatTransportBHELocalAssemblerSoil< ShapeFunction >::assembleWithJacobian(), ProcessLib::HydroMechanics::HydroMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::assembleWithJacobian(), ProcessLib::LargeDeformation::LargeDeformationLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobian(), ProcessLib::LIE::SmallDeformation::SmallDeformationLocalAssemblerMatrix< ShapeFunction, DisplacementDim >::assembleWithJacobian(), ProcessLib::RichardsMechanics::RichardsMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::assembleWithJacobian(), ProcessLib::SmallDeformation::SmallDeformationLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobian(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobian(), ProcessLib::TH2M::TH2MLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::assembleWithJacobian(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::assembleWithJacobian(), ProcessLib::ThermoMechanics::ThermoMechanicsLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobian(), ProcessLib::ThermoRichardsFlow::ThermoRichardsFlowLocalAssembler< ShapeFunction, GlobalDim >::assembleWithJacobian(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleWithJacobianComponentTransportEquation(), ProcessLib::HydroMechanics::HydroMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::assembleWithJacobianForDeformationEquations(), ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobianForDeformationEquations(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobianForDeformationEquations(), ProcessLib::ThermoMechanics::ThermoMechanicsLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobianForDeformationEquations(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobianForHeatConductionEquations(), ProcessLib::ThermoMechanics::ThermoMechanicsLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobianForHeatConductionEquations(), ProcessLib::ThermoMechanicalPhaseField::ThermoMechanicalPhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobianForPhaseFieldEquations(), ProcessLib::HydroMechanics::HydroMechanicsLocalAssembler< ShapeFunctionDisplacement, ShapeFunctionPressure, DisplacementDim >::assembleWithJacobianForPressureEquations(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleWithJacobianHydraulicEquation(), ProcessLib::PhaseField::PhaseFieldLocalAssembler< ShapeFunction, DisplacementDim >::assembleWithJacobianPhaseFieldEquations(), ProcessLib::RichardsComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::getIntPtSaturation(), ProcessLib::SmallDeformation::getMaterialForces(), and ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalLocalAssembler< ShapeFunction, DisplacementDim >::getNodalValues().
bool MathLib::dividedByPlane | ( | const MathLib::Point3d & | a, |
const MathLib::Point3d & | b, | ||
const MathLib::Point3d & | c, | ||
const MathLib::Point3d & | d ) |
Checks if a and b can be placed on a plane such that c and d lie on different sides of said plane. (In 2D space this checks if c and d are on different sides of a line through a and b.)
a | first point on plane |
b | second point on plane |
c | first point to test |
d | second point to test |
Definition at line 200 of file GeometricBasics.cpp.
Referenced by MeshLib::QuadRule::validate().
|
constexpr |
Definition at line 49 of file EigenBlockMatrixView.h.
Referenced by ProcessLib::LargeDeformation::computeSigmaGeom().
bool MathLib::finalizeMatrixAssembly | ( | LisMatrix & | mat | ) |
finish assembly to make this matrix be ready for use
Definition at line 123 of file LisMatrix.cpp.
bool MathLib::finalizeMatrixAssembly | ( | MAT_T & | ) |
Definition at line 18 of file FinalizeMatrixAssembly.h.
Referenced by ProcessLib::AssembledMatrixCache::assemble(), ProcessLib::LiquidFlow::LiquidFlowProcess::assembleConcreteProcess(), MathLib::EigenLisLinearSolver::solve(), and ProcessLib::ComponentTransport::ComponentTransportProcess::solveReactionEquation().
bool MathLib::finalizeMatrixAssembly | ( | PETScMatrix & | mat, |
const MatAssemblyType | asm_type = MAT_FINAL_ASSEMBLY ) |
General interface for the matrix assembly.
mat | The matrix to be finalized. |
asm_type | Assembly type, either MAT_FLUSH_ASSEMBLY or MAT_FINAL_ASSEMBLY. |
Definition at line 158 of file PETScMatrix.cpp.
void MathLib::finalizeVectorAssembly | ( | PETScVector & | vec | ) |
Function to finalize the vector assembly.
Definition at line 295 of file PETScVector.cpp.
void MathLib::finalizeVectorAssembly | ( | VEC_T & | ) |
General function to finalize the vector assembly.
Definition at line 19 of file FinalizeVectorAssembly.h.
Referenced by ProcessLib::AssembledMatrixCache::assemble(), ProcessLib::LiquidFlow::LiquidFlowProcess::assembleConcreteProcess(), NumLib::PETScNonlinearSolver::solve(), and ProcessLib::ComponentTransport::ComponentTransportProcess::solveReactionEquation().
bool MathLib::gaussPointInTriangle | ( | MathLib::Point3d const & | q, |
MathLib::Point3d const & | a, | ||
MathLib::Point3d const & | b, | ||
MathLib::Point3d const & | c, | ||
double | eps_pnt_out_of_plane = std::numeric_limits< float >::epsilon(), | ||
double | eps_pnt_out_of_tri = std::numeric_limits< float >::epsilon() ) |
Tests if the given point q is within the triangle, defined by its edge nodes a, b and c. Using two eps-values it is possible to test an 'epsilon' neighbourhood around the triangle as well as an 'epsilon' outside the triangles plane.
q | test point |
a | edge node of triangle |
b | edge node of triangle |
c | edge node of triangle |
eps_pnt_out_of_plane | eps allowing for p to be slightly off the plane spanned by abc ((orthogonal distance to the plane spaned by triangle) |
eps_pnt_out_of_tri | eps allowing for p to be slightly off outside of abc |
Definition at line 108 of file GeometricBasics.cpp.
References MathLib::Point3d::asEigenVector3d(), q, sqrDist(), and v.
Referenced by isPointInTriangle().
Let \(p_0, p_1, p_2 \in R^3\). The function getAngle computes the angle between the edges \((p_0,p_1)\) and \((p_1,p_2)\)
p0 | start point of edge 0 |
p1 | end point of edge 0 and start point of edge 1 |
p2 | end point of edge 1 |
Definition at line 42 of file MathTools.cpp.
References MathLib::Point3d::asEigenVector3d().
Referenced by MeshToolsLib::anonymous_namespace{AngleSkewMetric.cpp}::getMinMaxAngle().
void MathLib::ignoreOtherLinearSolvers | ( | BaseLib::ConfigTree const & | config, |
std::string const & | solver_name ) |
Ignore linear solver settings not needed for the selected one.
The project files support specifying linear solver options for all known solver libraries (currently PETSC, LIS, Eigen) even though for a specific build only one of those settings is used. That clearly conflicts with the requirement of the config tree that each setting present in the project file must be read exactly once.
The purpose of this function is to explicitly ignore all the settings that are not relevant for the currently used linear solver
config | The config tree snippet for the linear solver. |
solver_name | The tag under which the relevant configuration is found. All other configurations will be ignored. |
This function is currently used in the option parsing code of our EigenLinearSolver
, LisOption
and PETScLinearSolver
Definition at line 23 of file LinearSolverOptions.cpp.
References BaseLib::ConfigTree::ignoreConfigParameter(), known_linear_solvers, and s.
Referenced by MathLib::LinearSolverOptionsParser< EigenLinearSolver >::parseNameAndOptions(), MathLib::LinearSolverOptionsParser< EigenLisLinearSolver >::parseNameAndOptions(), and MathLib::LinearSolverOptionsParser< PETScLinearSolver >::parseNameAndOptions().
|
static |
Definition at line 31 of file GaussLegendreTet.cpp.
|
static |
Definition at line 70 of file GaussLegendreTet.cpp.
bool MathLib::isCoplanar | ( | const MathLib::Point3d & | a, |
const MathLib::Point3d & | b, | ||
const MathLib::Point3d & | c, | ||
const MathLib::Point3d & | d ) |
Checks if the four given points are located on a plane.
Definition at line 219 of file GeometricBasics.cpp.
References MathLib::Point3d::asEigenVector3d().
Referenced by GeoLib::MinimalBoundingSphere::MinimalBoundingSphere(), anonymous_namespace{MeshRevision.cpp}::constructFourNodeElement(), GeoLib::Polyline::isCoplanar(), anonymous_namespace{MeshRevision.cpp}::reducePrism(), and MeshLib::QuadRule::validate().
bool MathLib::isPointInTetrahedron | ( | MathLib::Point3d const & | p, |
MathLib::Point3d const & | a, | ||
MathLib::Point3d const & | b, | ||
MathLib::Point3d const & | c, | ||
MathLib::Point3d const & | d, | ||
double | eps = std::numeric_limits< double >::epsilon() ) |
Tests if the given point p is located within a tetrahedron spanned by points a, b, c, d. If the tet specified by a, b, c, d is degenerated (i.e. all points are coplanar) the function will return false because there is no meaningful concept of "inside" for such elements.
p | test point |
a | edge node of tetrahedron |
b | edge node of tetrahedron |
c | edge node of tetrahedron |
d | edge node of tetrahedron |
eps | Accounts for numerical inaccuracies by allowing a point to be slightly outside of the element and still be regarded as inside. |
Definition at line 50 of file GeometricBasics.cpp.
References orientation3d(), and p.
Referenced by MeshLib::HexRule::isPntInElement(), MeshLib::PrismRule::isPntInElement(), MeshLib::PyramidRule::isPntInElement(), and MeshLib::TetRule::isPntInElement().
bool MathLib::isPointInTriangle | ( | MathLib::Point3d const & | p, |
MathLib::Point3d const & | a, | ||
MathLib::Point3d const & | b, | ||
MathLib::Point3d const & | c, | ||
double | eps_pnt_out_of_plane = std::numeric_limits< float >::epsilon(), | ||
double | eps_pnt_out_of_tri = std::numeric_limits< float >::epsilon(), | ||
MathLib::TriangleTest | algorithm = MathLib::GAUSS ) |
Tests if the given point p is within the triangle, defined by its edge nodes a, b and c.Using two eps-values it is possible to test an 'epsilon' neighbourhood around the triangle as well as an 'epsilon' outside the triangles plane.
p | test point |
a | edge node of triangle |
b | edge node of triangle |
c | edge node of triangle |
eps_pnt_out_of_plane | eps allowing for p to be slightly off the plane spanned by abc |
eps_pnt_out_of_tri | eps allowing for p to be slightly off outside of abc |
algorithm | defines the method to use |
Definition at line 84 of file GeometricBasics.cpp.
References BARYCENTRIC, barycentricPointInTriangle(), ERR(), GAUSS, gaussPointInTriangle(), and p.
Referenced by GeoLib::Triangle::containsPoint(), GeoLib::EarClippingTriangulation::isEar(), MeshLib::QuadRule::isPntInElement(), and MeshLib::TriRule::isPntInElement().
bool MathLib::isPointInTriangleXY | ( | MathLib::Point3d const & | p, |
MathLib::Point3d const & | a, | ||
MathLib::Point3d const & | b, | ||
MathLib::Point3d const & | c ) |
Checks if the point \(p'\) is in the triangle defined by the points \(a', b', c'\), where the \(p', a', b', c' \) are the orthogonal projections to the \(x\)- \(y\) plane of the points \(p, a, b, c\), respectively.
Definition at line 180 of file GeometricBasics.cpp.
References p.
Referenced by MeshLib::isPointInElementXY().
bool MathLib::lessEq | ( | Point3d const & | a, |
Point3d const & | b, | ||
double | eps = std::numeric_limits< double >::epsilon() ) |
Lexicographic comparison of points taking an epsilon into account.
a | first input point. |
b | second input point. |
eps | tolerance used in comparison of coordinates. |
Definition at line 31 of file Point3d.cpp.
References MathLib::Point3d::data(), u, and v.
MathLib::Point3d MathLib::operator* | ( | Eigen::Matrix3d const & | mat, |
MathLib::Point3d const & | p ) |
rotation of points
mat | a rotation matrix |
p | a point to be transformed |
Definition at line 19 of file Point3d.cpp.
References p.
Definition at line 71 of file Point3d.h.
References MathLib::Point3d::data().
|
inline |
std::ostream & MathLib::operator<< | ( | std::ostream & | os, |
MathLib::WeightedPoint const & | wp ) |
Definition at line 17 of file WeightedPoint.cpp.
References MathLib::WeightedPoint::getDimension(), and MathLib::WeightedPoint::getWeight().
double MathLib::orientation3d | ( | MathLib::Point3d const & | p, |
MathLib::Point3d const & | a, | ||
MathLib::Point3d const & | b, | ||
MathLib::Point3d const & | c ) |
Checks if a point p is on the left or right side of a plane spanned by three points a, b, c.
p | point to test |
a | first point on plane |
b | second point on plane |
c | third point on plane |
Definition at line 19 of file GeometricBasics.cpp.
References MathLib::Point3d::asEigenVector3d(), p, u, and v.
Referenced by barycentricPointInTriangle(), and isPointInTetrahedron().
PiecewiseLinearCurveConfig MathLib::parsePiecewiseLinearCurveConfig | ( | BaseLib::ConfigTree const & | config | ) |
Definition at line 27 of file CreatePiecewiseLinearCurve.cpp.
References BaseLib::ConfigTree::getConfigParameter(), OGS_FATAL, and BaseLib::readDoublesFromBinaryFile().
Referenced by createPiecewiseLinearCurve().
std::vector< double > MathLib::readDoublesFromBinaryFile | ( | const std::string & | filename | ) |
void MathLib::setMatrix | ( | PETScMatrix & | m, |
Eigen::MatrixXd const & | tmp ) |
Definition at line 48 of file UnifiedMatrixSetters.cpp.
References MathLib::PETScMatrix::add(), MathLib::PETScMatrix::getNumberOfColumns(), MathLib::PETScMatrix::getNumberOfRows(), and MathLib::PETScMatrix::setZero().
void MathLib::setMatrix | ( | PETScMatrix & | m, |
std::initializer_list< double > | values ) |
Definition at line 42 of file UnifiedMatrixSetters.cpp.
References addToMatrix(), and MathLib::PETScMatrix::setZero().
void MathLib::setMatrixSparsity | ( | MATRIX & | matrix, |
SPARSITY_PATTERN const & | sparsity_pattern ) |
Sets the sparsity pattern of the underlying matrix. To allow partial specialization a SetMatrixSparsity template is instantiated, to which the matrix and the sparsity_pattern are passed.
Definition at line 31 of file SetMatrixSparsity.h.
void MathLib::setVector | ( | PETScVector & | v, |
MatrixVectorTraits< PETScVector >::Index const | index, | ||
double const | value ) |
Definition at line 35 of file UnifiedMatrixSetters.cpp.
References v.
void MathLib::setVector | ( | PETScVector & | v, |
std::initializer_list< double > | values ) |
Definition at line 26 of file UnifiedMatrixSetters.cpp.
References v.
Referenced by detail::applyKnownSolutions().
MathLib::SPECIALIZE_MATRIX_VECTOR_TRAITS | ( | PETScMatrix | , |
PETScMatrix::IndexType | ) |
MathLib::SPECIALIZE_MATRIX_VECTOR_TRAITS | ( | PETScVector | , |
PETScVector::IndexType | ) |
double MathLib::sqrDist | ( | MathLib::Point3d const & | p0, |
MathLib::Point3d const & | p1 ) |
Computes the squared dist between the two points p0 and p1.
Definition at line 26 of file Point3d.cpp.
References MathLib::Point3d::asEigenVector3d().
Referenced by MeshGeoToolsLib::BoundaryElementsAtPoint::BoundaryElementsAtPoint(), MeshToolsLib::EdgeRatioMetric::calculateQuality(), MeshToolsLib::MeshRevision::collapseNodeIndices(), MeshLib::computeSqrEdgeLengthRange(), MeshLib::computeSqrNodeDistanceRange(), MeshLib::LineRule::computeVolume(), GeoLib::Polygon::containsSegment(), createPoints(), MeshGeoToolsLib::createSubSegmentsForElement(), gaussPointInTriangle(), GeoLib::getLocationOfPoint(), MeshGeoToolsLib::MeshNodeSearcher::getMeshNodeIDs(), MeshLib::LineRule::isPntInElement(), MeshLib::PointRule1::isPntInElement(), GeoLib::lineSegmentIntersect(), main(), MeshGeoToolsLib::mapLineSegment(), GeoLib::operator==(), operator==(), GeoLib::MinimalBoundingSphere::pointDistanceSquared(), GeoLib::pointsAreIdentical(), and GeoLib::sortSegments().
|
inline |
Computes the squared distance between the orthogonal projection of the two points p0
and p1
onto the \(xy\)-plane.
Definition at line 123 of file Point3d.h.
Referenced by MeshLib::isPointInElementXY(), GeoLib::lineSegmentIntersect2d(), and MeshGeoToolsLib::snapPointToElementNode().
Eigen::Map< Matrix > MathLib::toMatrix | ( | std::vector< double > & | data, |
Eigen::MatrixXd::Index | rows, | ||
Eigen::MatrixXd::Index | cols ) |
Creates an Eigen mapped matrix from the given data vector.
Definition at line 111 of file EigenMapTools.h.
|
inline |
Creates an Eigen mapped matrix from the given data vector.
This is a convenience method which makes the specification of dynamically allocated Eigen matrices as return type easier.
Definition at line 134 of file EigenMapTools.h.
References toMatrix().
Eigen::Map< const Matrix > MathLib::toMatrix | ( | std::vector< double > const & | data, |
Eigen::MatrixXd::Index | rows, | ||
Eigen::MatrixXd::Index | cols ) |
Creates an Eigen mapped matrix from the given data vector.
Definition at line 72 of file EigenMapTools.h.
Referenced by ProcessLib::Assembly::MatrixElementCache< Dim >::addToCacheImpl(), ProcessLib::VectorMatrixAssembler::assemble(), ProcessLib::ComponentTransport::ComponentTransportLocalAssemblerInterface::assembleReactionEquation(), ProcessLib::CentralDifferencesJacobianAssembler::assembleWithJacobian(), ProcessLib::CompareJacobiansJacobianAssembler::assembleWithJacobian(), ProcessLib::ForwardDifferencesJacobianAssembler::assembleWithJacobian(), ProcessLib::HeatTransportBHE::HeatTransportBHELocalAssemblerBHE< ShapeFunction, BHEType >::assembleWithJacobian(), ProcessLib::HeatTransportBHE::HeatTransportBHELocalAssemblerSoil< ShapeFunction >::assembleWithJacobian(), ProcessLib::VectorMatrixAssembler::assembleWithJacobian(), NumLib::LocalLinearLeastSquaresExtrapolator::calculateResidualElement(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::computeSecondaryVariableConcrete(), NumLib::LocalLinearLeastSquaresExtrapolator::extrapolateElement(), ProcessLib::TES::TESLocalAssembler< ShapeFunction_, GlobalDim >::getIntPtDarcyVelocity(), toMatrix(), toMatrix(), ProcessLib::transposeInPlace(), ProcessLib::transposeInPlace(), and ProcessLib::transposeInPlace().
|
inline |
Creates an Eigen mapped matrix from the given data vector.
This is a convenience method which makes the specification of dynamically allocated Eigen matrices as return type easier.
Definition at line 96 of file EigenMapTools.h.
References toMatrix().
|
inline |
Creates an Eigen mapped vector from the given data vector.
This is a convenience method which makes the specification of dynamically allocated Eigen vectors as return type easier.
Definition at line 207 of file EigenMapTools.h.
Eigen::Map< Vector > MathLib::toVector | ( | std::vector< double > & | data, |
Eigen::VectorXd::Index | size ) |
Creates an Eigen mapped vector from the given data vector.
Definition at line 180 of file EigenMapTools.h.
|
inline |
Creates an Eigen mapped vector from the given data vector.
This is a convenience method which makes the specification of dynamically allocated Eigen vectors as return type easier.
Definition at line 196 of file EigenMapTools.h.
Eigen::Map< const Vector > MathLib::toVector | ( | std::vector< double > const & | data, |
Eigen::VectorXd::Index | size ) |
Creates an Eigen mapped vector from the given data vector.
Definition at line 167 of file EigenMapTools.h.
Referenced by ProcessLib::BoundaryConditionAndSourceTerm::Python::BcAndStLocalAssemblerImpl< BcOrStData, ShapeFunction, LowerOrderShapeFunction, GlobalDim >::assemble(), ProcessLib::RobinBoundaryConditionLocalAssembler< ShapeFunction, GlobalDim >::assemble(), ProcessLib::VectorMatrixAssembler::assemble(), ProcessLib::LiquidFlow::LiquidFlowLocalAssembler< ShapeFunction, GlobalDim >::assembleMatrixAndVector(), ProcessLib::ComponentTransport::ComponentTransportLocalAssemblerInterface::assembleReactionEquation(), ProcessLib::CentralDifferencesJacobianAssembler::assembleWithJacobian(), ProcessLib::CompareJacobiansJacobianAssembler::assembleWithJacobian(), ProcessLib::ForwardDifferencesJacobianAssembler::assembleWithJacobian(), ProcessLib::VectorMatrixAssembler::assembleWithJacobian(), anonymous_namespace{ParallelVectorMatrixAssembler.cpp}::assembleWithJacobianForStaggeredSchemeOneElement(), ProcessLib::LiquidFlow::LiquidFlowLocalAssembler< ShapeFunction, GlobalDim >::computeProjectedDarcyVelocity(), ProcessLib::LocalAssemblerInterface::computeSecondaryVariable(), MathLib::EigenVector::copyValues(), ProcessLib::ComponentTransport::createComponentTransportProcess(), ProcessLib::HT::createHTProcess(), ProcessLib::LiquidFlow::createLiquidFlowProcess(), ProcessLib::RichardsComponentTransport::createRichardsComponentTransportProcess(), ProcessLib::RichardsFlow::createRichardsFlowProcess(), ProcessLib::ThermalTwoPhaseFlowWithPP::createThermalTwoPhaseFlowWithPPProcess(), ProcessLib::TwoPhaseFlowWithPP::createTwoPhaseFlowWithPPProcess(), ProcessLib::TwoPhaseFlowWithPrho::createTwoPhaseFlowWithPrhoProcess(), ProcessLib::WellboreSimulator::createWellboreSimulatorProcess(), NumLib::LocalLinearLeastSquaresExtrapolator::extrapolateElement(), MaterialLib::Solids::Ehlers::SolidEhlers< DisplacementDim >::getInternalVariables(), ProcessLib::SteadyStateDiffusion::LocalAssemblerData< ShapeFunction, GlobalDim >::getIntPtDarcyVelocity(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::getIntPtMolarFlux(), NumLib::getLocalX(), ProcessLib::ComponentTransport::ComponentTransportLocalAssemblerInterface::initializeChemicalSystem(), ProcessLib::AnchorTerm< GlobalDim >::integrate(), ProcessLib::Assembly::LocalMatrixOutput::operator()(), ProcessLib::Assembly::LocalMatrixOutput::operator()(), ProcessLib::Deformation::CollectIntegrationPointDataForExtrapolation< InternalVariable >::operator()(), and ProcessLib::ComponentTransport::ComponentTransportLocalAssemblerInterface::setChemicalSystem().
|
extern |
Definition at line 98 of file Point3d.h.
Referenced by MeshLib::getBulkElementPoint(), and getOrigin().
|
static |
Definition at line 62 of file GaussLegendreTet.cpp.
Referenced by barycentricPointInTriangle(), calcProjPntToLineAndDists(), isPointInTetrahedron(), isPointInTriangle(), isPointInTriangleXY(), MathLib::PiecewiseLinearMonotonicCurve::isStrongMonotonic(), operator*(), operator<<(), and orientation3d().
|
static |
Definition at line 63 of file GaussLegendreTet.cpp.
Referenced by gaussPointInTriangle().
|
static |
Definition at line 64 of file GaussLegendreTet.cpp.
Referenced by addToMatrix().
|
static |
Definition at line 102 of file GaussLegendreTet.cpp.
Referenced by MathLib::EigenOption::EigenOption(), MathLib::Nonlinear::RegulaFalsi< SubType, Function >::getResult(), ignoreOtherLinearSolvers(), MathLib::LinearSolverOptionsParser< EigenLinearSolver >::parseNameAndOptions(), MathLib::LinearSolverOptionsParser< EigenLisLinearSolver >::parseNameAndOptions(), and MathLib::Nonlinear::RegulaFalsi< SubType, Function >::step().
|
static |
Definition at line 103 of file GaussLegendreTet.cpp.
Referenced by MathLib::ODE::CVodeSolverImpl::CVodeSolverImpl(), MathLib::ODE::detail::FunctionHandlesImpl< N >::call(), MathLib::ODE::detail::FunctionHandlesImpl< N >::callJacobian(), MathLib::ODE::ConcreteODESolver< Implementation, NumEquations >::getYDot(), MathLib::ODE::CVodeSolver::getYDot(), MathLib::ODE::CVodeSolverImpl::getYDot(), MathLib::KahanSum::operator+=(), MathLib::ODE::CVodeSolverImpl::preSolve(), and MathLib::ODE::ConcreteODESolver< Implementation, NumEquations >::solve().
|
static |
Definition at line 104 of file GaussLegendreTet.cpp.
Referenced by calcTetrahedronVolume(), calcTriangleArea(), MathLib::EigenVector::copyValues(), MathLib::LisVector::copyValues(), MathLib::PETScVector::copyValues(), MathLib::PETScVector::getGlobalVector(), lessEq(), and orientation3d().
|
static |
Definition at line 105 of file GaussLegendreTet.cpp.
Referenced by MathLib::KahanSum::KahanSum(), MathLib::EigenVector::add(), MathLib::LisMatrix::add(), MathLib::LisVector::add(), calcProjPntToLineAndDists(), calcTetrahedronVolume(), calcTriangleArea(), MathLib::KelvinVector::Invariants< KelvinVectorSize >::determinant(), MathLib::KelvinVector::Invariants< KelvinVectorSize >::determinant(), MathLib::KelvinVector::Invariants< KelvinVectorSize >::diagonal(), MathLib::KelvinVector::fourthOrderRotationMatrix< 2 >(), gaussPointInTriangle(), MathLib::LisVector::get(), MathLib::Nonlinear::AndersonBjorck::get_m(), MathLib::KelvinVector::inverse(), MathLib::KelvinVector::inverse(), MathLib::KelvinVector::kelvinVectorToSymmetricTensor(), MathLib::KelvinVector::kelvinVectorToSymmetricTensor(), MathLib::KelvinVector::kelvinVectorToTensor(), MathLib::KelvinVector::kelvinVectorToTensor(), MathLib::KelvinVector::kelvinVectorToTensor(), lessEq(), orientation3d(), MathLib::EigenVector::set(), MathLib::LisVector::set(), MathLib::LisMatrix::setValue(), setVector(), setVector(), MathLib::PETScVector::shallowCopy(), MathLib::KelvinVector::symmetricTensorToKelvinVector(), and MathLib::KelvinVector::Invariants< KelvinVectorSize >::trace().