comac_desk_app/ThirdpartyLibs/Libs/windows-x86_64/vtk/include/vtkLagrangianMatidaIntegrat...

75 lines
2.8 KiB
C++

/*=========================================================================
Program: Visualization Toolkit
Module: vtkLagrangianMatidaIntegrationModel.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/**
* @class vtkLagrangianMatidaIntegrationModel
* vtkLagrangianBasicIntegrationModel implementation
*
*
* vtkLagrangianBasicIntegrationModel implementation using
* article :
* "Matida, E. A., et al. "Improved numerical simulation of aerosol deposition in
* an idealized mouth-throat." Journal of Aerosol Science 35.1 (2004): 1-19."
* Input Array to process are expected as follow :
* Index 1 is the "FlowVelocity" from flow input in the tracker
* Index 2 is the "FlowDensity" from flow input in the tracker
* Index 3 is the "FlowDynamicViscosity" from flow input in the tracker
* Index 4 is the "ParticleDiameter" from seed (source) input in the tracker
* Index 5 is the "ParticleDensity" from seed (source) input in the tracker
*
* @sa
* vtkLagrangianParticleTracker vtkLagrangianParticle
* vtkLagrangianBasicIntegrationModel
*/
#ifndef vtkLagrangianMatidaIntegrationModel_h
#define vtkLagrangianMatidaIntegrationModel_h
#include "vtkFiltersFlowPathsModule.h" // For export macro
#include "vtkLagrangianBasicIntegrationModel.h"
class VTKFILTERSFLOWPATHS_EXPORT vtkLagrangianMatidaIntegrationModel
: public vtkLagrangianBasicIntegrationModel
{
public:
vtkTypeMacro(vtkLagrangianMatidaIntegrationModel, vtkLagrangianBasicIntegrationModel);
void PrintSelf(ostream& os, vtkIndent indent) override;
static vtkLagrangianMatidaIntegrationModel* New();
// Needed for multiple signatures polymorphism
using Superclass::FunctionValues;
/**
* Evaluate the integration model velocity field
* f at position x, using data from cell in dataSet with index cellId
*/
int FunctionValues(vtkLagrangianParticle* particle, vtkDataSet* dataSet, vtkIdType cellId,
double* weights, double* x, double* f) override;
protected:
vtkLagrangianMatidaIntegrationModel();
~vtkLagrangianMatidaIntegrationModel() override;
static double GetRelaxationTime(double dynVisc, double diameter, double density);
static double GetDragCoefficient(const double* flowVelocity, const double* particleVelocity,
double dynVisc, double particleDiameter, double flowDensity);
private:
vtkLagrangianMatidaIntegrationModel(const vtkLagrangianMatidaIntegrationModel&) = delete;
void operator=(const vtkLagrangianMatidaIntegrationModel&) = delete;
};
#endif