MaMiCo 1.2
Loading...
Searching...
No Matches
coupling::error::ErrorEstimation Class Reference

This class is used to analyse the error and predict the required number of instances. More...

#include <ErrorEstimation.h>

Public Types

enum  errorBaseQuantity { Velocity = 0 , Density = 1 , Temperature = 2 , Pressure = 3 }
 
enum  errorType { Relative = 0 , Absolute = 1 }
 

Public Member Functions

 ErrorEstimation (double velocity, double temperature, double numberOfParticle, double particleMass, double soundSpeed, double numberOfSamples, double cellVolume)
 
 ~ErrorEstimation ()
 
double getError (errorBaseQuantity BaseQuantity, errorType Type)
 
double getCorrectorNumberOfSamples (errorBaseQuantity BaseQuantity, errorType Type)
 
double getErrorVelocity (double numberOfSamples, double velocity, double temperature, double numberOfParticle, double particleMass)
 
double getErrorDensity (double numberOfSamples, double soundSpeed, double temperature, double numberOfParticle, double particleMass)
 
double getErrorTemperature (double numberOfSamples, double numberOfParticle, double temperature)
 
double getErrorPressure (double numberOfSamples, double numberOfParticle, double temperature, double soundSpeed, double particleMass, double cellVolume, double pressure)
 
double requiredSamplesV (double desiredError, double temperature, double soundSpeed, double velocity, double numberOfParticle, double particleMass)
 
double requiredSamplesD (double desiredError, double temperature, double soundSpeed, double velocity, double particleMass, double numberOfParticle)
 
double reqiredSamplesT (double desiredError)
 
double velocitySNR (double velocity, double temperature, double numberOfParticle, double particleMass)
 
double veloyityFluctuation (double temperature, double numberOfParticle, double particleMass)
 
void setAbsVelocityError (double error)
 
void setRelVelocityError (double error)
 
void setAbsDensityError (double error)
 
void setRelDensityError (double error)
 
void setAbsTemperatureError (double error)
 
void setRelTemperatureError (double error)
 
void setAbsPressureError (double error)
 
void setRelPressureError (double error)
 

Private Member Functions

double getErrorVelocity ()
 
double getErrorDensity ()
 
double getErrorTemperature ()
 
double acousticNumber (double soundSpeed, double soundSpeed_ref)
 
double referenceSoundSpeed (double temperature, double particleMass)
 
double referencePressure (double temperature, double numberOfParticle, double cellVolume)
 

Private Attributes

double _velocity
 
double _temperature
 
double _numberOfParticle
 
double _particleMass
 
double _soundSpeed
 
double _numberOfSamples
 
double _cellVolume
 
double _desiredAbsErrorVelocity
 
double _desiredRelErrorVelocity
 
double _desiredAbsErrorDensity
 
double _desiredRelErrorDensity
 
double _desiredAbsErrorTemperature
 
double _desiredRelErrorTemperature
 
double _desiredAbsErrorPressure
 
double _desiredRelErrorPressure
 
double _gamma
 
double _C_v
 
double _k
 

Detailed Description

This class is used to analyse the error and predict the required number of instances.

This class provides the basic eqations for analytical error estimation based in the statistical mechanic. There are two typs of error estimation in this class bases on velocity ans density fluctuation. Also it can be used to estimate the required number of MD-simulations as a function of required maximum error.

Author
Vahid Jafarittmer

Member Enumeration Documentation

◆ errorBaseQuantity

The quantiy, its error we want to analyse

Enumerator
Velocity 

error in Velocity

Density 

error in Density

Temperature 

error in Temperature

Pressure 

error in Pressure

◆ errorType

relative/absolute error

Enumerator
Relative 

Relative error

Absolute 

Absolute error

Constructor & Destructor Documentation

◆ ErrorEstimation()

coupling::error::ErrorEstimation::ErrorEstimation ( double velocity,
double temperature,
double numberOfParticle,
double particleMass,
double soundSpeed,
double numberOfSamples,
double cellVolume )
inline

Constructor: Initializes the private member of the class.

Parameters
velocity
temperature
numberOfParticle
particleMass
soundSpeed
numberOfSamples
cellVolume

◆ ~ErrorEstimation()

coupling::error::ErrorEstimation::~ErrorEstimation ( )
inline

Destructor:

Member Function Documentation

◆ getCorrectorNumberOfSamples()

double coupling::error::ErrorEstimation::getCorrectorNumberOfSamples ( errorBaseQuantity BaseQuantity,
errorType Type )
inline

This function predict the required number of MD instances to keep the relative or absolute error of the quantites veocty, density, tempetature or pressure based on its arguments under a certain value. The desired error value has to be set before, this function is called.

Parameters
errorBaseQuantity
errorType

◆ getError()

double coupling::error::ErrorEstimation::getError ( errorBaseQuantity BaseQuantity,
errorType Type )
inline

This function predict the relative or absolute error of the quantites veocty, density, tempetature or pressure based on its arguments.

Parameters
errorBaseQuantity
errorType

◆ getErrorDensity() [1/2]

double coupling::error::ErrorEstimation::getErrorDensity ( )
inlineprivate

This function estimates the density error

Returns
density error

◆ getErrorDensity() [2/2]

double coupling::error::ErrorEstimation::getErrorDensity ( double numberOfSamples,
double soundSpeed,
double temperature,
double numberOfParticle,
double particleMass )
inline

This function estimates the density error

Parameters
numberOfSamples
soundSpeed
temperature
numberOfParticle
particleMass
Returns
error density error

◆ getErrorPressure()

double coupling::error::ErrorEstimation::getErrorPressure ( double numberOfSamples,
double numberOfParticle,
double temperature,
double soundSpeed,
double particleMass,
double cellVolume,
double pressure )
inline

This function estimates the pressure error

Parameters
numberOfSamples
numberOfParticle
temperature
soundSpeed
particleMass
cellVolume
pressure
Returns
error pressure error

◆ getErrorTemperature() [1/2]

double coupling::error::ErrorEstimation::getErrorTemperature ( )
inlineprivate

This function estimates the temperature error

Returns
temperature error

◆ getErrorTemperature() [2/2]

double coupling::error::ErrorEstimation::getErrorTemperature ( double numberOfSamples,
double numberOfParticle,
double temperature )
inline

This function estimates the temperature error

Parameters
numberOfSamples
temperature
numberOfParticle
Returns
error temperature error

◆ getErrorVelocity() [1/2]

double coupling::error::ErrorEstimation::getErrorVelocity ( )
inlineprivate

This function estimates the velocity error

Returns
velocity error

◆ getErrorVelocity() [2/2]

double coupling::error::ErrorEstimation::getErrorVelocity ( double numberOfSamples,
double velocity,
double temperature,
double numberOfParticle,
double particleMass )
inline

This function estimates the velocity error

Parameters
numberOfSamples
velocity
temperature
numberOfParticle
particleMass
Returns
error veocty error

◆ referencePressure()

double coupling::error::ErrorEstimation::referencePressure ( double temperature,
double numberOfParticle,
double cellVolume )
inlineprivate

calculates thepressure of an ideal gas under the same conditions

Parameters
temperature
numberOfParticle
cellVolume
Returns
reference pressure

◆ referenceSoundSpeed()

double coupling::error::ErrorEstimation::referenceSoundSpeed ( double temperature,
double particleMass )
inlineprivate

calculates the sound speed of a reference ideal gas at the same temperature

Parameters
temperature
particleMass
Returns
referenc sound speed

◆ reqiredSamplesT()

double coupling::error::ErrorEstimation::reqiredSamplesT ( double desiredError)
inline

This function estimates the number of MD instances required to keep the error of the temperature under _desiredAbsErrorTemperature or _desiredrelErrorTemperature

Parameters
desiredError
temperature
soundSpeed
velocity
numberOfParticle
particleMass
Returns
desiredNumber required number of MD instances

◆ requiredSamplesD()

double coupling::error::ErrorEstimation::requiredSamplesD ( double desiredError,
double temperature,
double soundSpeed,
double velocity,
double particleMass,
double numberOfParticle )
inline

This function estimates the number of MD instances required to keep the error of the density under _desiredAbsErrorDensity or _desiredrelErrorDensity

Parameters
desiredError
temperature
soundSpeed
velocity
numberOfParticle
particleMass
Returns
desiredNumber required number of MD instances

◆ requiredSamplesV()

double coupling::error::ErrorEstimation::requiredSamplesV ( double desiredError,
double temperature,
double soundSpeed,
double velocity,
double numberOfParticle,
double particleMass )
inline

This function estimates the number of MD instances required to keep the error of the veloctiy under _desiredAbsErrorVelocity or _desiredrelErrorVelocity

Parameters
desiredError
temperature
soundSpeed
velocity
numberOfParticle
particleMass
Returns
desiredNumber required number of MD instances

◆ setAbsDensityError()

void coupling::error::ErrorEstimation::setAbsDensityError ( double error)
inline

sets the required absloute error of the density

Parameters
error

◆ setAbsPressureError()

void coupling::error::ErrorEstimation::setAbsPressureError ( double error)
inline

sets the required absloute error of the pressure

Parameters
error

◆ setAbsTemperatureError()

void coupling::error::ErrorEstimation::setAbsTemperatureError ( double error)
inline

sets the required absloute error of the temperature

Parameters
error

◆ setAbsVelocityError()

void coupling::error::ErrorEstimation::setAbsVelocityError ( double error)
inline

sets the required absloute error of the velocity

Parameters
error

◆ setRelDensityError()

void coupling::error::ErrorEstimation::setRelDensityError ( double error)
inline

sets the required relative error of the density

Parameters
error

◆ setRelPressureError()

void coupling::error::ErrorEstimation::setRelPressureError ( double error)
inline

sets the required relative error of the pressure

Parameters
error

◆ setRelTemperatureError()

void coupling::error::ErrorEstimation::setRelTemperatureError ( double error)
inline

sets the required relative error of the temperature

Parameters
error

◆ setRelVelocityError()

void coupling::error::ErrorEstimation::setRelVelocityError ( double error)
inline

sets the required relative error of the velocity

Parameters
error

◆ velocitySNR()

double coupling::error::ErrorEstimation::velocitySNR ( double velocity,
double temperature,
double numberOfParticle,
double particleMass )
inline

signal-to-noise ratio as the average fluid velocity over the standard deviation (square root of the veloyity fluctuation=

Parameters
velocity
temperature
numberOfParticle
particleMass
Returns
desiredNumber required number of MD instances
See also
veloyityFluctuation

◆ veloyityFluctuation()

double coupling::error::ErrorEstimation::veloyityFluctuation ( double temperature,
double numberOfParticle,
double particleMass )
inline

veloyity fluctuation from equilibrium statistical mechanics

Parameters
temperature
numberOfParticle
particleMass
Returns
veloyity fluctuation
See also
velocitySNR

Member Data Documentation

◆ _k

double coupling::error::ErrorEstimation::_k
private

Boltzman Constant unit: [J/K]


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