KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
Public Types | Static Public Member Functions | List of all members
Kratos::FiniteDifferenceUtility Class Reference

FiniteDifferenceUtility. More...

#include <finite_difference_utility.h>

Collaboration diagram for Kratos::FiniteDifferenceUtility:

Public Types

typedef Variable< doublearray_1d_component_type
 
typedef std::size_t IndexType
 
typedef std::size_t SizeType
 

Static Public Member Functions

static void CalculateRightHandSideDerivative (Element &rElement, const Vector &rRHS, const Variable< double > &rDesignVariable, const double &rPertubationSize, Matrix &rOutput, const ProcessInfo &rCurrentProcessInfo)
 
template<typename TElementType >
static void CalculateRightHandSideDerivative (TElementType &rElement, const Vector &rRHS, const array_1d_component_type &rDesignVariable, Node &rNode, const double &rPertubationSize, Vector &rOutput, const ProcessInfo &rCurrentProcessInfo)
 
static void CalculateLeftHandSideDerivative (Element &rElement, const Matrix &rLHS, const array_1d_component_type &rDesignVariable, Node &rNode, const double &rPertubationSize, Matrix &rOutput, const ProcessInfo &rCurrentProcessInfo)
 
static void CalculateMassMatrixDerivative (Element &rElement, const Matrix &rMassMatrix, const array_1d_component_type &rDesignVariable, Node &rNode, const double &rPertubationSize, Matrix &rOutput, const ProcessInfo &rCurrentProcessInfo)
 

Detailed Description

FiniteDifferenceUtility.

This class calculates the derivatives of different element quantities (e.g. RHS, LHS, mass-matrix, ...) with respect to a design variable (e.g. nodal-coordinate, property).

Member Typedef Documentation

◆ array_1d_component_type

◆ IndexType

◆ SizeType

Member Function Documentation

◆ CalculateLeftHandSideDerivative()

void Kratos::FiniteDifferenceUtility::CalculateLeftHandSideDerivative ( Element rElement,
const Matrix rLHS,
const array_1d_component_type rDesignVariable,
Node rNode,
const double rPertubationSize,
Matrix rOutput,
const ProcessInfo rCurrentProcessInfo 
)
static

◆ CalculateMassMatrixDerivative()

void Kratos::FiniteDifferenceUtility::CalculateMassMatrixDerivative ( Element rElement,
const Matrix rMassMatrix,
const array_1d_component_type rDesignVariable,
Node rNode,
const double rPertubationSize,
Matrix rOutput,
const ProcessInfo rCurrentProcessInfo 
)
static

◆ CalculateRightHandSideDerivative() [1/2]

void Kratos::FiniteDifferenceUtility::CalculateRightHandSideDerivative ( Element rElement,
const Vector rRHS,
const Variable< double > &  rDesignVariable,
const double rPertubationSize,
Matrix rOutput,
const ProcessInfo rCurrentProcessInfo 
)
static

◆ CalculateRightHandSideDerivative() [2/2]

template<typename TElementType >
static void Kratos::FiniteDifferenceUtility::CalculateRightHandSideDerivative ( TElementType &  rElement,
const Vector rRHS,
const array_1d_component_type rDesignVariable,
Node rNode,
const double rPertubationSize,
Vector rOutput,
const ProcessInfo rCurrentProcessInfo 
)
inlinestatic

The documentation for this class was generated from the following files: