waves
Basic FE playground
flow::WakeResidual Class Reference

Formulation of wake boundary residuals. More...

#include <wWakeResidual.h>

Static Public Member Functions

static std::tuple< Eigen::MatrixXd, Eigen::MatrixXd > buildFixed (WakeElement const &we, std::vector< double > const &phi)
 Build the residual matrix for a fixed-point iteration, on one wake element. More...
 
static std::tuple< Eigen::VectorXd, Eigen::VectorXd > build (WakeElement const &we, std::vector< double > const &phi)
 Build the residual vector, on one wake element. More...
 
static std::tuple< Eigen::MatrixXd, Eigen::MatrixXd > buildGradientFlow (WakeElement const &we, std::vector< double > const &phi)
 Build the gradient of the residual vector with respect to the flow variable (jacobian), on one wake element. More...
 
static std::tuple< Eigen::MatrixXd, Eigen::MatrixXd, Eigen::MatrixXd > buildGradientMesh (WakeElement const &we, std::vector< double > const &phi)
 Build the gradient of the residual vector with respect to the nodes, on one wake element. More...
 

Detailed Description

Formulation of wake boundary residuals.

Member Function Documentation

◆ build()

std::tuple< Eigen::VectorXd, Eigen::VectorXd > WakeResidual::build ( WakeElement const &  we,
std::vector< double > const &  phi 
)
static

Build the residual vector, on one wake element.

b_u = \int (psi + grad_psi*v_inf) * (grad_phi_u)^2 dS b_l = \int (psi + grad_psi*v_inf) * (grad_phi_l)^2 dS NB: v_inf = [1, 0, 0]

◆ buildFixed()

std::tuple< Eigen::MatrixXd, Eigen::MatrixXd > WakeResidual::buildFixed ( WakeElement const &  we,
std::vector< double > const &  phi 
)
static

Build the residual matrix for a fixed-point iteration, on one wake element.

A_u = \int (psi + grad_psi*v_inf) * v_u*grad_phi_u dS A_l = \int (psi + grad_psi*v_inf) * v_l*grad_phi_l dS NB: A_u and A_l will be assembled on same row DOF, but on different columns NB: v_inf = [1, 0, 0]

◆ buildGradientFlow()

std::tuple< Eigen::MatrixXd, Eigen::MatrixXd > WakeResidual::buildGradientFlow ( WakeElement const &  we,
std::vector< double > const &  phi 
)
static

Build the gradient of the residual vector with respect to the flow variable (jacobian), on one wake element.

A_u = \int (psi + grad_psi*v_inf) * 2*(grad_phi_u)*dgrad_phi_u dS A_l = \int (psi + grad_psi*v_inf) * 2*(grad_phi_l)*dgrad_phi_l dS NB: v_inf = [1, 0, 0]

◆ buildGradientMesh()

std::tuple< Eigen::MatrixXd, Eigen::MatrixXd, Eigen::MatrixXd > WakeResidual::buildGradientMesh ( WakeElement const &  we,
std::vector< double > const &  phi 
)
static

Build the gradient of the residual vector with respect to the nodes, on one wake element.

A = d( \int (psi + grad_psi*v_inf) * (grad_phi)^2 dS ) = \int dgrad_psi*v_inf * (grad_phi)^2 dS

  • \int (psi + grad_psi*v_inf) * d(grad_phi)^2 dS
  • \int (psi + grad_psi*v_inf) * (grad_phi)^2 ddS NB: v_inf = [1, 0, 0]

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