cuIBM
A GPU-based Immersed Boundary Method code
FadlunEtAlSolver.h
Go to the documentation of this file.
1 
7 #pragma once
8 
9 #include "DirectForcingSolver.h"
10 #include "DFModifiedSolver.h"
11 
12 
32 template <typename memoryType>
33 class FadlunEtAlSolver : public DFModifiedSolver<memoryType>
34 {
35 private:
36  cusp::coo_matrix<int, real, memoryType> G;
37 
38  // update the gradient operator
39  virtual void updateG();
40 
41  // compute the gradient and divergence operators
42  virtual void generateQT();
43 
44  // add explicit pressure gradient to RHS of velocity system
45  virtual void calculateExplicitLambdaTerms();
46 
47  // compute the matrix Poisson system
48  virtual void generateC();
49 
50 public:
51  // constructor -- copy database and grid
52  FadlunEtAlSolver(parameterDB *pDB=NULL, domain *dInfo=NULL);
53 
57  virtual std::string name()
58  {
59  return "Fadlun et al.";
60  }
61 }; // FadlunEtAlSolver
62 
63 
73 template <typename memoryType>
74 class FEAModifiedSolver : public DirectForcingSolver<memoryType>
75 {
76 private:
77  // compute the gradient and divergence operators
78  virtual void generateQT();
79  // compute the matrix of the Poisson system
80  virtual void generateC();
81 
82 public:
83  // constructor -- copy database and grid
84  FEAModifiedSolver(parameterDB *pDB=NULL, domain *dInfo=NULL);
85 
89  virtual std::string name()
90  {
91  return "FEAModified";
92  }
93 }; // FEAModifiedSolver
Direct forcing method proposed by Fadlun et al (2000), without explicit pressure added when the inter...
virtual std::string name()
Returns the name of the solver as a string.
A fully discrete formulation of the direct forcing method.
std::map< std::string, componentParameter > parameterDB
Map from a string to a componentParameter.
Definition: parameterDB.h:64
Definition of the class DFModifiedSolver.
Stores information about the computational grid.
Definition: domain.h:16
virtual void generateQT()
Generates the matrix QT, Q and G for FadlunEtAlSolver.
Declaration of the class DirectForcingSolver.
virtual std::string name()
Returns the name of the solver as a string.
FadlunEtAlSolver(parameterDB *pDB=NULL, domain *dInfo=NULL)
Constructor. Copies the database and information about the computational grid.
Direct forcing method proposed by Fadlun et al (2000).
virtual void updateG()
virtual void calculateExplicitLambdaTerms()
Add the pressure gradient to the right hand side of the momentum equation.
virtual void generateC()
Generates the matrix for the Poisson equation.
cusp::coo_matrix< int, real, memoryType > G
gradient operator
A fully discrete formulation of the direct forcing method, with an explicit pressure term in the inte...