An abstract class representing a power spectrum density decomposition method. More...

#include <IrpsWLPSDdecompositionMethod.h>

Public Member Functions

virtual bool ComputeDecomposedCrossSpectrumMatrixPP (const WindLabAPI::WindLabSimulationData &Data, const double &dFrequency, const double &dTime, cx_mat &dPSDMatrix)=0
 Compute the decomposed spectrum matrix for given time and frequency.
 
virtual bool ComputeDecomposedCrossSpectrumVectorF (const WindLabAPI::WindLabSimulationData &Data, const Base::Vector3d &locationJ, const Base::Vector3d &locationK, const double &dTime, vec &dVarVector, cx_vec &dValVector)=0
 Compute the decomposed spectrum between two simulation points for all frequency increments.
 
virtual bool ComputeDecomposedCrossSpectrumVectorT (const WindLabAPI::WindLabSimulationData &Data, const Base::Vector3d &locationJ, const Base::Vector3d &locationK, const double &dFrequency, vec &dVarVector, cx_vec &dValVector)=0
 Compute the decomposed spectrum between two simulation points for all time increments.
 
virtual bool OnInitialSetting (const WindLabSimulationData &Data)=0
 Allows to do any initial taks before any of the other methods is called.
 
virtual ~IrpsWLPSDdecompositionMethod ()
 Virtual destructor for IrpsWLPSDdecompositionMethod class.
 
- Public Member Functions inherited from WindLabAPI::WindLabFeaturePSDDecompositionMethod
virtual const char * getViewProviderName () const
 
 WindLabFeaturePSDDecompositionMethod (void)
 Constructor.
 
virtual ~WindLabFeaturePSDDecompositionMethod ()
 
virtual short mustExecute () const override
 
- Public Member Functions inherited from WindLabAPI::WindLabFeature
 WindLabFeature (void)
 Constructor.
 
virtual ~WindLabFeature ()
 destructor
 

Additional Inherited Members

- Protected Member Functions inherited from WindLabAPI::WindLabFeaturePSDDecompositionMethod
virtual App::DocumentObjectExecReturn * recompute () override
 recompute only this object
 
virtual App::DocumentObjectExecReturn * execute () override
 recalculate the feature
 
virtual void onChanged (const App::Property *prop) override
 
- Protected Member Functions inherited from WindLabAPI::WindLabFeature
virtual PyObject * getPyObject () override
 
- Protected Attributes inherited from WindLabAPI::WindLabFeature
Py::SmartPtr PythonObject
 

Detailed Description

An abstract class representing a power spectrum density decomposition method.

This is a pure virtual class (interface) that defines the interface for power spectrum density decomposition methods. To simulate seismic events accurately, it is essential for certain simulation algorithms to perform Power Spectral Density (PSD) decomposition. Decomposing the PSD into orthogonal components or factorizing it using methods such as Cholesky Decomposition is a crucial step in those simulation algorithms. In fact, this class is to allow all the community to develop more efficient and optimized algorithms for the Cholesky decomposition usually involved in the specral representation method. Derived classes must implement all its methods. During the implementation of this interface you have to consider stationarity depending on how your feature varies in time to capture these three situation that may come from the user's inputs (requirements):

1-The user is willing to simulate stationary wind velocity. f = f(w)

2-The user is willing to simulate non-stationary wind velocity and has also created a modulation function in the simulation. f = f(w,t) = G(w) * M(t)

3-The user is willing to simulate non-stationary wind velocity without creating any modulation function in the simulation. f = f(w,t)

Constructor & Destructor Documentation

◆ ~IrpsWLPSDdecompositionMethod()

virtual WindLabAPI::IrpsWLPSDdecompositionMethod::~IrpsWLPSDdecompositionMethod ( )
virtual

Virtual destructor for IrpsWLPSDdecompositionMethod class.

Provides proper cleanup in case a derived class object is destroyed.

Member Function Documentation

◆ ComputeDecomposedCrossSpectrumMatrixPP()

virtual bool WindLabAPI::IrpsWLPSDdecompositionMethod::ComputeDecomposedCrossSpectrumMatrixPP ( const WindLabAPI::WindLabSimulationData & Data,
const double & dFrequency,
const double & dTime,
cx_mat & dPSDMatrix )
pure virtual

Compute the decomposed spectrum matrix for given time and frequency.

Parameters
Datathe simulation data containing all the simulation parameters input by the user.
dFrequencythe frequency value for which the decomposed spectrum matrix will be computed.
dTimethe time instant at which the decomposed spectrum matrix will be computed.
dCoherenceMatrixa matrix to be updated. It should contain the computed decomposed spectrum matrix.
Returns
return true if the computation is successful and false in case of failure.

Referenced by WindLabAPI::CRPSWindLabFramework::ComputeDecomposedCrossSpectrumMatrixPP().

◆ ComputeDecomposedCrossSpectrumVectorF()

virtual bool WindLabAPI::IrpsWLPSDdecompositionMethod::ComputeDecomposedCrossSpectrumVectorF ( const WindLabAPI::WindLabSimulationData & Data,
const Base::Vector3d & locationJ,
const Base::Vector3d & locationK,
const double & dTime,
vec & dVarVector,
cx_vec & dValVector )
pure virtual

Compute the decomposed spectrum between two simulation points for all frequency increments.

Parameters
Datathe simulation data containing all the simulation parameters input by the user.
locationJa location J (simulation point represented by 3D position vector) where wind velocity time series is desired.
locationKa location K (simulation point represented by 3D position vector) where wind velocity time series is desired.
dTimethe time instant at which the decomposed spectrum vector will be computed.
dVarVectora vector to be updated. It should contains all the frequency increments used to compute each value stored in dValVector.
dValVectora vector to be updated. It should contain all the values computed for each frequency increment stored in dVarVector.
Returns
return true if the computation is successful and false in case of failure.

Referenced by WindLabAPI::CRPSWindLabFramework::ComputeDecomposedCrossSpectrumVectorF().

◆ ComputeDecomposedCrossSpectrumVectorT()

virtual bool WindLabAPI::IrpsWLPSDdecompositionMethod::ComputeDecomposedCrossSpectrumVectorT ( const WindLabAPI::WindLabSimulationData & Data,
const Base::Vector3d & locationJ,
const Base::Vector3d & locationK,
const double & dFrequency,
vec & dVarVector,
cx_vec & dValVector )
pure virtual

Compute the decomposed spectrum between two simulation points for all time increments.

Parameters
Datathe simulation data containing all the simulation parameters input by the user.
locationJa location J (simulation point represented by 3D position vector) where wind velocity time series is desired.
locationKa location K (simulation point represented by 3D position vector) where wind velocity time series is desired.
dFrequencythe frequency value for which the decomposed spectrum vector will be computed.
dVarVectora vector to be updated. It should contains all the time increments used to compute each value stored in dValVector.
dValVectora vector to be updated. It should contain all the values computed for each time increment stored in dVarVector.
Returns
return true if the computation is successful and false in case of failure.

Referenced by WindLabAPI::CRPSWindLabFramework::ComputeDecomposedCrossSpectrumVectorT().

◆ OnInitialSetting()

virtual bool WindLabAPI::IrpsWLPSDdecompositionMethod::OnInitialSetting ( const WindLabSimulationData & Data)
pure virtual

Allows to do any initial taks before any of the other methods is called.

Parameters
Datathe simulation data containing all the simulation parameters input by the user.
Returns
return true if the computation is successful and false in case of failure.

The documentation for this class was generated from the following file:
  • RPS/LabRPS/LabRPS_KOFFI/src/Mod/WindLabAPI/App/IrpsWLPSDdecompositionMethod.h