waves
Basic FE playground
flow::Problem Class Reference

Manage the problem. More...

#include <wProblem.h>

Inheritance diagram for flow::Problem:
Collaboration diagram for flow::Problem:

Public Member Functions

 Problem (std::shared_ptr< tbox::MshData > _msh, int dim, double aoa, double aos, double minf, double sref, double cref, double xref, double yref, double zref)
 
virtual ~Problem ()
 
void set (std::shared_ptr< Medium > m)
 Set the fluid medium. More...
 
void add (std::shared_ptr< Boundary > b)
 Add a boundary surface. More...
 
void set (std::shared_ptr< Initial > i)
 Add initial condition. More...
 
void add (std::shared_ptr< Dirichlet > d)
 Add Dirichlet boundary condition. More...
 
void add (std::shared_ptr< Freestream > f)
 Add freestream (Neumann) boundary condition. More...
 
void add (std::shared_ptr< Wake > w)
 Add wake boundary condition. More...
 
void add (std::shared_ptr< Kutta > k)
 Add Kutta condition. More...
 
void add (std::shared_ptr< Blowing > b)
 Add Blowing boundary condition. More...
 
void update (double aoa)
 Update the angle of attack. More...
 
void check () const
 Check that Problem is not empty and that elements are supported. More...
 
void pin ()
 Pin a degree of freedom if no Dirichlet BC is explicitely provided. More...
 
void initElems ()
 Initialize the elements precomputed values. More...
 
void initGradElems ()
 Initialize the elements precomputed gradients. More...
 
virtual void write (std::ostream &out) const override
 

Public Attributes

std::shared_ptr< tbox::MshData > msh
 Mesh structure. More...
 
int nDim
 Problem dimension. More...
 
double alpha
 Angle of attack. More...
 
double beta
 Angle of sideslip. More...
 
double M_inf
 Mach number. More...
 
double S_ref
 Reference surface. More...
 
double c_ref
 Reference chord. More...
 
Eigen::Vector3d x_ref
 Reference center point (for moment computation) More...
 
F1CtDrag dirD
 
F1CtSide dirS
 
F1CtLift dirL
 
std::shared_ptr< Mediummedium
 Fluid. More...
 
std::vector< std::shared_ptr< Boundary > > bnds
 Boundaries. More...
 
std::shared_ptr< InitialiIC
 Initial condition. More...
 
std::vector< std::shared_ptr< Dirichlet > > dBCs
 Dirichlet boundary conditions. More...
 
std::vector< std::shared_ptr< Freestream > > fBCs
 Freestream boundary conditions. More...
 
std::vector< std::shared_ptr< Wake > > wBCs
 Wake boundary condition. More...
 
std::vector< std::shared_ptr< Kutta > > kSCs
 Kutta condition. More...
 
std::vector< std::shared_ptr< Blowing > > bBCs
 Blowing (transpiration) boundary condition. More...
 
std::vector< fwk::Observer * > obs
 classes depending on problem variables More...
 

Detailed Description

Manage the problem.

Contains freestream definition, reference values and physical groups

Authors
Adrien Crovato

Constructor & Destructor Documentation

◆ Problem()

flow::Problem::Problem ( std::shared_ptr< tbox::MshData >  _msh,
int  dim,
double  aoa,
double  aos,
double  minf,
double  sref,
double  cref,
double  xref,
double  yref,
double  zref 
)

◆ ~Problem()

virtual flow::Problem::~Problem ( )
inlinevirtual

Member Function Documentation

◆ add() [1/6]

void Problem::add ( std::shared_ptr< Blowing b)

Add Blowing boundary condition.

◆ add() [2/6]

void Problem::add ( std::shared_ptr< Boundary b)

Add a boundary surface.

◆ add() [3/6]

void Problem::add ( std::shared_ptr< Dirichlet d)

Add Dirichlet boundary condition.

◆ add() [4/6]

void Problem::add ( std::shared_ptr< Freestream f)

Add freestream (Neumann) boundary condition.

◆ add() [5/6]

void Problem::add ( std::shared_ptr< Kutta k)

Add Kutta condition.

◆ add() [6/6]

void Problem::add ( std::shared_ptr< Wake w)

Add wake boundary condition.

◆ check()

void Problem::check ( ) const

Check that Problem is not empty and that elements are supported.

◆ initElems()

void Problem::initElems ( )

Initialize the elements precomputed values.

◆ initGradElems()

void Problem::initGradElems ( )

Initialize the elements precomputed gradients.

◆ pin()

void Problem::pin ( )

Pin a degree of freedom if no Dirichlet BC is explicitely provided.

◆ set() [1/2]

void Problem::set ( std::shared_ptr< Initial i)

Add initial condition.

◆ set() [2/2]

void Problem::set ( std::shared_ptr< Medium m)

Set the fluid medium.

◆ update()

void Problem::update ( double  aoa)

Update the angle of attack.

◆ write()

void Problem::write ( std::ostream &  out) const
overridevirtual

Member Data Documentation

◆ alpha

double flow::Problem::alpha

Angle of attack.

◆ bBCs

std::vector<std::shared_ptr<Blowing> > flow::Problem::bBCs

Blowing (transpiration) boundary condition.

◆ beta

double flow::Problem::beta

Angle of sideslip.

◆ bnds

std::vector<std::shared_ptr<Boundary> > flow::Problem::bnds

Boundaries.

◆ c_ref

double flow::Problem::c_ref

Reference chord.

◆ dBCs

std::vector<std::shared_ptr<Dirichlet> > flow::Problem::dBCs

Dirichlet boundary conditions.

◆ dirD

F1CtDrag flow::Problem::dirD

◆ dirL

F1CtLift flow::Problem::dirL

◆ dirS

F1CtSide flow::Problem::dirS

◆ fBCs

std::vector<std::shared_ptr<Freestream> > flow::Problem::fBCs

Freestream boundary conditions.

◆ iIC

std::shared_ptr<Initial> flow::Problem::iIC

Initial condition.

◆ kSCs

std::vector<std::shared_ptr<Kutta> > flow::Problem::kSCs

Kutta condition.

◆ M_inf

double flow::Problem::M_inf

Mach number.

◆ medium

std::shared_ptr<Medium> flow::Problem::medium

Fluid.

◆ msh

std::shared_ptr<tbox::MshData> flow::Problem::msh

Mesh structure.

◆ nDim

int flow::Problem::nDim

Problem dimension.

◆ obs

std::vector<fwk::Observer *> flow::Problem::obs

classes depending on problem variables

◆ S_ref

double flow::Problem::S_ref

Reference surface.

◆ wBCs

std::vector<std::shared_ptr<Wake> > flow::Problem::wBCs

Wake boundary condition.

◆ x_ref

Eigen::Vector3d flow::Problem::x_ref

Reference center point (for moment computation)


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