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.
|
Traits class to hold QSVMS adjoint element data. More...
#include <qs_vms_adjoint_element_data.h>
Public Types | |
Template Type Definitions | |
using | EquationAuxiliaries = TResidualsDerivatives |
This holds static helper functions such as Check and GetIntegrationMethod for the equations. More... | |
using | Residual = CalculationContainerTraits< std::tuple< Data >, std::tuple< SubAssembly< ResidualsContributions, ElementDataContainerIndex, 0, ResidualColumnOffset > > > |
This holds the container traits for primal residual computation which is required for analytical sensitivity computation. More... | |
using | ResidualStateVariableFirstDerivatives = std::conditional_t< TDim==2, CalculationContainerTraits< std::tuple< Data >, std::tuple< SubAssembly< VelocityDerivativeContributions< 0 >, ElementDataContainerIndex, 0, ResidualColumnOffset >, SubAssembly< VelocityDerivativeContributions< 1 >, ElementDataContainerIndex, 1, ResidualColumnOffset >, SubAssembly< PressureDerivativeContributions, ElementDataContainerIndex, 2, ResidualColumnOffset > > >, CalculationContainerTraits< std::tuple< Data >, std::tuple< SubAssembly< VelocityDerivativeContributions< 0 >, ElementDataContainerIndex, 0, ResidualColumnOffset >, SubAssembly< VelocityDerivativeContributions< 1 >, ElementDataContainerIndex, 1, ResidualColumnOffset >, SubAssembly< VelocityDerivativeContributions< 2 >, ElementDataContainerIndex, 2, ResidualColumnOffset >, SubAssembly< PressureDerivativeContributions, ElementDataContainerIndex, 3, ResidualColumnOffset > > > > |
This holds the container traits for analytical first derivative computations. More... | |
using | ResidualStateVariableSecondDerivatives = std::conditional_t< TDim==2, CalculationContainerTraits< std::tuple< Data >, std::tuple< SubAssembly< AccelerationDerivativeContributions< 0 >, ElementDataContainerIndex, 0, ResidualColumnOffset >, SubAssembly< AccelerationDerivativeContributions< 1 >, ElementDataContainerIndex, 1, ResidualColumnOffset >, SubAssembly< ZeroDerivatives< TNumNodes, 3 >, ElementDataContainerIndex, 2, ResidualColumnOffset > > >, CalculationContainerTraits< std::tuple< Data >, std::tuple< SubAssembly< AccelerationDerivativeContributions< 0 >, ElementDataContainerIndex, 0, ResidualColumnOffset >, SubAssembly< AccelerationDerivativeContributions< 1 >, ElementDataContainerIndex, 1, ResidualColumnOffset >, SubAssembly< AccelerationDerivativeContributions< 2 >, ElementDataContainerIndex, 2, ResidualColumnOffset >, SubAssembly< ZeroDerivatives< TNumNodes, 4 >, ElementDataContainerIndex, 3, ResidualColumnOffset > > > > |
This holds the traits for the analytical second derivative computations. More... | |
using | ResidualShapeDerivatives = std::conditional_t< TDim==2, CalculationContainerTraits< std::tuple< Data >, std::tuple< SubAssembly< ShapeDerivatives< 0 >, ElementDataContainerIndex, 0, ResidualColumnOffset >, SubAssembly< ShapeDerivatives< 1 >, ElementDataContainerIndex, 1, ResidualColumnOffset > > >, CalculationContainerTraits< std::tuple< Data >, std::tuple< SubAssembly< ShapeDerivatives< 0 >, ElementDataContainerIndex, 0, ResidualColumnOffset >, SubAssembly< ShapeDerivatives< 1 >, ElementDataContainerIndex, 1, ResidualColumnOffset >, SubAssembly< ShapeDerivatives< 2 >, ElementDataContainerIndex, 2, ResidualColumnOffset > > > > |
This holds the traits for the analytical shape derivative computations. More... | |
Traits class to hold QSVMS adjoint element data.
This class provides following type information about element data EquationAuxiliaries: Needs to provide following auxiliary static methods static void Check(Element&, const ProcessInfo&) method -> Checks whether required data is there static GeometryData::IntegrationMethod GetIntegrationMethod() -> Provides the integration method
Residual: Provides CalculationContainerTraits with the data containers and calculation containers to compute the residuals.
ResidualStateVariableFirstDerivatives: Provides CalculationContainerTraits with data containers and calculation containers to compute the residual state first derivatives.
ResidualStateVariableSecondDerivatives: Provides CalculationContainerTraits with data containers and calculation containers to compute the residual state second derivatives.
ResidualShapeDerivatives: Provides CalculationContainerTraits with data containers and calculation containers to compute the residual shape derivatives.
TDim | Dimensionality of the element. |
TNumNodes | Number of nodes in the element. |
using Kratos::QSVMSAdjointElementData< TDim, TNumNodes >::EquationAuxiliaries = TResidualsDerivatives |
This holds static helper functions such as Check and GetIntegrationMethod for the equations.
using Kratos::QSVMSAdjointElementData< TDim, TNumNodes >::Residual = CalculationContainerTraits< std::tuple< Data>, std::tuple< SubAssembly<ResidualsContributions, ElementDataContainerIndex, 0, ResidualColumnOffset> > > |
This holds the container traits for primal residual computation which is required for analytical sensitivity computation.
using Kratos::QSVMSAdjointElementData< TDim, TNumNodes >::ResidualShapeDerivatives = std::conditional_t< TDim == 2, CalculationContainerTraits< std::tuple< Data>, std::tuple< SubAssembly<ShapeDerivatives<0>, ElementDataContainerIndex, 0, ResidualColumnOffset>, SubAssembly<ShapeDerivatives<1>, ElementDataContainerIndex, 1, ResidualColumnOffset> > >, CalculationContainerTraits< std::tuple< Data>, std::tuple< SubAssembly<ShapeDerivatives<0>, ElementDataContainerIndex, 0, ResidualColumnOffset>, SubAssembly<ShapeDerivatives<1>, ElementDataContainerIndex, 1, ResidualColumnOffset>, SubAssembly<ShapeDerivatives<2>, ElementDataContainerIndex, 2, ResidualColumnOffset> > > > |
This holds the traits for the analytical shape derivative computations.
using Kratos::QSVMSAdjointElementData< TDim, TNumNodes >::ResidualStateVariableFirstDerivatives = std::conditional_t< TDim == 2, CalculationContainerTraits< std::tuple< Data>, std::tuple< SubAssembly<VelocityDerivativeContributions<0>, ElementDataContainerIndex, 0, ResidualColumnOffset>, SubAssembly<VelocityDerivativeContributions<1>, ElementDataContainerIndex, 1, ResidualColumnOffset>, SubAssembly<PressureDerivativeContributions, ElementDataContainerIndex, 2, ResidualColumnOffset> > >, CalculationContainerTraits< std::tuple< Data>, std::tuple< SubAssembly<VelocityDerivativeContributions<0>, ElementDataContainerIndex, 0, ResidualColumnOffset>, SubAssembly<VelocityDerivativeContributions<1>, ElementDataContainerIndex, 1, ResidualColumnOffset>, SubAssembly<VelocityDerivativeContributions<2>, ElementDataContainerIndex, 2, ResidualColumnOffset>, SubAssembly<PressureDerivativeContributions, ElementDataContainerIndex, 3, ResidualColumnOffset> > > > |
This holds the container traits for analytical first derivative computations.
using Kratos::QSVMSAdjointElementData< TDim, TNumNodes >::ResidualStateVariableSecondDerivatives = std::conditional_t< TDim == 2, CalculationContainerTraits< std::tuple< Data>, std::tuple< SubAssembly<AccelerationDerivativeContributions<0>, ElementDataContainerIndex, 0, ResidualColumnOffset>, SubAssembly<AccelerationDerivativeContributions<1>, ElementDataContainerIndex, 1, ResidualColumnOffset>, SubAssembly<ZeroDerivatives<TNumNodes, 3>, ElementDataContainerIndex, 2, ResidualColumnOffset> > >, CalculationContainerTraits< std::tuple< Data>, std::tuple< SubAssembly<AccelerationDerivativeContributions<0>, ElementDataContainerIndex, 0, ResidualColumnOffset>, SubAssembly<AccelerationDerivativeContributions<1>, ElementDataContainerIndex, 1, ResidualColumnOffset>, SubAssembly<AccelerationDerivativeContributions<2>, ElementDataContainerIndex, 2, ResidualColumnOffset>, SubAssembly<ZeroDerivatives<TNumNodes, 4>, ElementDataContainerIndex, 3, ResidualColumnOffset> > > > |
This holds the traits for the analytical second derivative computations.