FEIBM_ANS
 All Classes Files Functions Variables Enumerations Enumerator Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ImmersedFEM< dim > Class Template Reference

Public Member Functions

 ImmersedFEM (ProblemParameters< dim > &par)
 
 ~ImmersedFEM ()
 
void run ()
 

Private Member Functions

void create_triangulation_and_dofs ()
 
void apply_constraints (vector< double > &local_res, FullMatrix< double > &local_jacobian, const Vector< double > &local_up, const vector< unsigned int > &dofs)
 
void compute_current_bc (const double time)
 
void apply_current_bc (BlockVector< double > &vec, const double time)
 
void assemble_sparsity (Mapping< dim, dim > &mapping)
 
void get_area_and_first_pressure_dof ()
 
void residual_and_or_Jacobian (BlockVector< double > &residual, BlockSparseMatrix< double > &Jacobian, const BlockVector< double > &xit, const BlockVector< double > &xi, const double alpha, const double t)
 
void distribute_residual (Vector< double > &residual, const vector< double > &local_res, const vector< unsigned int > &dofs_1, const unsigned int offset_1)
 
void distribute_jacobian (SparseMatrix< double > &Jacobian, const FullMatrix< double > &local_Jac, const vector< unsigned int > &dofs_1, const vector< unsigned int > &dofs_2, const unsigned int offset_1, const unsigned int offset_2)
 
void distribute_constraint_on_pressure (Vector< double > &residual, const double average_pressure)
 
void distribute_constraint_on_pressure (SparseMatrix< double > &jacobian, const vector< double > &pressure_coefficient, const vector< unsigned int > &dofs, const unsigned int offset)
 
void localize (Vector< double > &local_M_gamma3_inv_A_gamma, const Vector< double > &M_gamma3_inv_A_gamma, const vector< unsigned int > &dofs)
 
void get_Agamma_values (const FEValues< dim, dim > &fe_v_s, const vector< unsigned int > &dofs, const Vector< double > &xi, Vector< double > &local_A_gamma)
 
void get_Pe_F_and_DPeFT_dxi_values (const FEValues< dim, dim > &fe_v_s, const vector< unsigned int > &dofs, const Vector< double > &xi, const bool update_jacobian, vector< Tensor< 2, dim, double > > &Pe, vector< Tensor< 2, dim, double > > &F, vector< vector< Tensor< 2, dim, double > > > &DPe_dxi)
 
void calculate_error () const
 
unsigned int n_dofs () const
 
void output_step (const double t, const BlockVector< double > &solution, const unsigned int step_number, const double h)
 
template<class Type >
void set_to_zero (Type &v) const
 
template<class Type >
void set_to_zero (Table< 2, Type > &v) const
 
template<class Type >
void set_to_zero (vector< Type > &v) const
 
double norm (const vector< double > &v)
 

Private Attributes

ProblemParameters< dim > & par
 
vector< unsigned char > boundary_indicators
 
Triangulation< dim > tria_f
 
Triangulation< dim, dim > tria_s
 
FESystem< dim > fe_f
 
bool dgp_for_p
 
FESystem< dim, dim > fe_s
 
DoFHandler< dim > dh_f
 
DoFHandler< dim, dim > dh_s
 
MappingQEulerian< dim, Vector
< double >, dim > * 
mapping
 
QGauss< dim > quad_f
 
QTrapez< 1 > qtrapez
 
QIterated< dim > quad_s
 
ConstraintMatrix constraints_f
 
ConstraintMatrix constraints_s
 
BlockSparsityPattern sparsity
 
BlockSparseMatrix< double > JF
 
BlockSparseMatrix< double > dummy_JF
 
BlockVector< double > current_xi
 
BlockVector< double > previous_xi
 
BlockVector< double > current_xit
 
BlockVector< double > current_res
 
BlockVector< double > newton_update
 
Vector< double > pressure_average
 
Vector< double > unit_pressure
 
unsigned int n_dofs_u
 
unsigned int n_dofs_p
 
unsigned int n_dofs_up
 
unsigned int n_dofs_W
 
unsigned int n_total_dofs
 
Vector< double > tmp_vec_n_total_dofs
 
Vector< double > tmp_vec_n_dofs_up
 
SparseDirectUMFPACK JF_inv
 
double scaling
 
double previous_time
 
unsigned int constraining_dof
 
set< unsigned int > pressure_dofs
 
Vector< double > A_gamma
 
SparseMatrix< double > M_gamma3
 
SparseDirectUMFPACK M_gamma3_inv
 
Vector< double > M_gamma3_inv_A_gamma
 
double area
 
ofstream global_info_file
 

Detailed Description

template<int dim>
class ImmersedFEM< dim >

Definition at line 491 of file step-feibm.cc.

Constructor & Destructor Documentation

template<int dim>
ImmersedFEM< dim >::ImmersedFEM ( ProblemParameters< dim > &  par)
template<int dim>
ImmersedFEM< dim >::~ImmersedFEM ( )

Definition at line 778 of file step-feibm.cc.

Member Function Documentation

template<int dim>
void ImmersedFEM< dim >::apply_constraints ( vector< double > &  local_res,
FullMatrix< double > &  local_jacobian,
const Vector< double > &  local_up,
const vector< unsigned int > &  dofs 
)
private

Definition at line 2236 of file step-feibm.cc.

template<int dim>
void ImmersedFEM< dim >::apply_current_bc ( BlockVector< double > &  vec,
const double  time 
)
private

Definition at line 806 of file step-feibm.cc.

template<int dim>
void ImmersedFEM< dim >::assemble_sparsity ( Mapping< dim, dim > &  mapping)
private

Definition at line 1070 of file step-feibm.cc.

template<int dim>
void ImmersedFEM< dim >::calculate_error ( ) const
private

Definition at line 2319 of file step-feibm.cc.

template<int dim>
void ImmersedFEM< dim >::compute_current_bc ( const double  time)
private

Definition at line 787 of file step-feibm.cc.

template<int dim>
void ImmersedFEM< dim >::create_triangulation_and_dofs ( )
private
template<int dim>
void ImmersedFEM< dim >::distribute_constraint_on_pressure ( Vector< double > &  residual,
const double  average_pressure 
)
private

Definition at line 2275 of file step-feibm.cc.

template<int dim>
void ImmersedFEM< dim >::distribute_constraint_on_pressure ( SparseMatrix< double > &  jacobian,
const vector< double > &  pressure_coefficient,
const vector< unsigned int > &  dofs,
const unsigned int  offset 
)
private

Definition at line 2286 of file step-feibm.cc.

template<int dim>
void ImmersedFEM< dim >::distribute_jacobian ( SparseMatrix< double > &  Jacobian,
const FullMatrix< double > &  local_Jac,
const vector< unsigned int > &  dofs_1,
const vector< unsigned int > &  dofs_2,
const unsigned int  offset_1,
const unsigned int  offset_2 
)
private

Definition at line 2217 of file step-feibm.cc.

template<int dim>
void ImmersedFEM< dim >::distribute_residual ( Vector< double > &  residual,
const vector< double > &  local_res,
const vector< unsigned int > &  dofs_1,
const unsigned int  offset_1 
)
private

Definition at line 2202 of file step-feibm.cc.

template<int dim>
void ImmersedFEM< dim >::get_Agamma_values ( const FEValues< dim, dim > &  fe_v_s,
const vector< unsigned int > &  dofs,
const Vector< double > &  xi,
Vector< double > &  local_A_gamma 
)
private

Definition at line 2032 of file step-feibm.cc.

template<int dim>
void ImmersedFEM< dim >::get_area_and_first_pressure_dof ( )
private

Definition at line 1115 of file step-feibm.cc.

template<int dim>
void ImmersedFEM< dim >::get_Pe_F_and_DPeFT_dxi_values ( const FEValues< dim, dim > &  fe_v_s,
const vector< unsigned int > &  dofs,
const Vector< double > &  xi,
const bool  update_jacobian,
vector< Tensor< 2, dim, double > > &  Pe,
vector< Tensor< 2, dim, double > > &  F,
vector< vector< Tensor< 2, dim, double > > > &  DPe_dxi 
)
private
template<int dim>
void ImmersedFEM< dim >::localize ( Vector< double > &  local_M_gamma3_inv_A_gamma,
const Vector< double > &  M_gamma3_inv_A_gamma,
const vector< unsigned int > &  dofs 
)
private

Definition at line 2306 of file step-feibm.cc.

template<int dim>
unsigned int ImmersedFEM< dim >::n_dofs ( ) const
inlineprivate

Definition at line 720 of file step-feibm.cc.

References ImmersedFEM< dim >::n_total_dofs.

template<int dim>
double ImmersedFEM< dim >::norm ( const vector< double > &  v)
private

Definition at line 2434 of file step-feibm.cc.

template<int dim>
void ImmersedFEM< dim >::output_step ( const double  t,
const BlockVector< double > &  solution,
const unsigned int  step_number,
const double  h 
)
private

Definition at line 1888 of file step-feibm.cc.

template<int dim>
void ImmersedFEM< dim >::residual_and_or_Jacobian ( BlockVector< double > &  residual,
BlockSparseMatrix< double > &  Jacobian,
const BlockVector< double > &  xit,
const BlockVector< double > &  xi,
const double  alpha,
const double  t 
)
private

Definition at line 1159 of file step-feibm.cc.

template<int dim>
void ImmersedFEM< dim >::run ( )

Definition at line 1753 of file step-feibm.cc.

Referenced by main().

template<int dim>
template<class Type >
void ImmersedFEM< dim >::set_to_zero ( Type &  v) const
inlineprivate

Definition at line 2413 of file step-feibm.cc.

template<int dim>
template<class Type >
void ImmersedFEM< dim >::set_to_zero ( Table< 2, Type > &  v) const
inlineprivate

Definition at line 2427 of file step-feibm.cc.

template<int dim>
template<class Type >
void ImmersedFEM< dim >::set_to_zero ( vector< Type > &  v) const
inlineprivate

Definition at line 2420 of file step-feibm.cc.

Member Data Documentation

template<int dim>
Vector<double> ImmersedFEM< dim >::A_gamma
private

Definition at line 623 of file step-feibm.cc.

template<int dim>
double ImmersedFEM< dim >::area
private

Definition at line 635 of file step-feibm.cc.

template<int dim>
vector<unsigned char> ImmersedFEM< dim >::boundary_indicators
private

Definition at line 510 of file step-feibm.cc.

template<int dim>
unsigned int ImmersedFEM< dim >::constraining_dof
private

Definition at line 617 of file step-feibm.cc.

template<int dim>
ConstraintMatrix ImmersedFEM< dim >::constraints_f
private

Definition at line 555 of file step-feibm.cc.

template<int dim>
ConstraintMatrix ImmersedFEM< dim >::constraints_s
private

Definition at line 559 of file step-feibm.cc.

template<int dim>
BlockVector<double> ImmersedFEM< dim >::current_res
private

Definition at line 588 of file step-feibm.cc.

template<int dim>
BlockVector<double> ImmersedFEM< dim >::current_xi
private

Definition at line 576 of file step-feibm.cc.

template<int dim>
BlockVector<double> ImmersedFEM< dim >::current_xit
private

Definition at line 584 of file step-feibm.cc.

template<int dim>
bool ImmersedFEM< dim >::dgp_for_p
private

Definition at line 526 of file step-feibm.cc.

Referenced by ImmersedFEM< dim >::ImmersedFEM().

template<int dim>
DoFHandler<dim> ImmersedFEM< dim >::dh_f
private

Definition at line 534 of file step-feibm.cc.

template<int dim>
DoFHandler<dim, dim> ImmersedFEM< dim >::dh_s
private

Definition at line 538 of file step-feibm.cc.

template<int dim>
BlockSparseMatrix<double> ImmersedFEM< dim >::dummy_JF
private

Definition at line 572 of file step-feibm.cc.

template<int dim>
FESystem<dim> ImmersedFEM< dim >::fe_f
private

Definition at line 522 of file step-feibm.cc.

template<int dim>
FESystem<dim, dim> ImmersedFEM< dim >::fe_s
private

Definition at line 530 of file step-feibm.cc.

template<int dim>
ofstream ImmersedFEM< dim >::global_info_file
private

Definition at line 638 of file step-feibm.cc.

Referenced by ImmersedFEM< dim >::ImmersedFEM().

template<int dim>
BlockSparseMatrix<double> ImmersedFEM< dim >::JF
private

Definition at line 567 of file step-feibm.cc.

template<int dim>
SparseDirectUMFPACK ImmersedFEM< dim >::JF_inv
private

Definition at line 608 of file step-feibm.cc.

template<int dim>
SparseMatrix<double> ImmersedFEM< dim >::M_gamma3
private

Definition at line 626 of file step-feibm.cc.

template<int dim>
SparseDirectUMFPACK ImmersedFEM< dim >::M_gamma3_inv
private

Definition at line 629 of file step-feibm.cc.

template<int dim>
Vector<double> ImmersedFEM< dim >::M_gamma3_inv_A_gamma
private

Definition at line 632 of file step-feibm.cc.

template<int dim>
MappingQEulerian<dim, Vector<double>, dim>* ImmersedFEM< dim >::mapping
private

Definition at line 542 of file step-feibm.cc.

template<int dim>
unsigned int ImmersedFEM< dim >::n_dofs_p
private

Definition at line 603 of file step-feibm.cc.

template<int dim>
unsigned int ImmersedFEM< dim >::n_dofs_u
private

Definition at line 603 of file step-feibm.cc.

template<int dim>
unsigned int ImmersedFEM< dim >::n_dofs_up
private

Definition at line 603 of file step-feibm.cc.

template<int dim>
unsigned int ImmersedFEM< dim >::n_dofs_W
private

Definition at line 603 of file step-feibm.cc.

template<int dim>
unsigned int ImmersedFEM< dim >::n_total_dofs
private

Definition at line 603 of file step-feibm.cc.

Referenced by ImmersedFEM< dim >::n_dofs().

template<int dim>
BlockVector<double> ImmersedFEM< dim >::newton_update
private

Definition at line 592 of file step-feibm.cc.

template<int dim>
ProblemParameters<dim>& ImmersedFEM< dim >::par
private

Definition at line 506 of file step-feibm.cc.

template<int dim>
Vector<double> ImmersedFEM< dim >::pressure_average
private

Definition at line 596 of file step-feibm.cc.

template<int dim>
set<unsigned int> ImmersedFEM< dim >::pressure_dofs
private

Definition at line 620 of file step-feibm.cc.

template<int dim>
double ImmersedFEM< dim >::previous_time
private

Definition at line 614 of file step-feibm.cc.

template<int dim>
BlockVector<double> ImmersedFEM< dim >::previous_xi
private

Definition at line 580 of file step-feibm.cc.

template<int dim>
QTrapez<1> ImmersedFEM< dim >::qtrapez
private

Definition at line 550 of file step-feibm.cc.

template<int dim>
QGauss<dim> ImmersedFEM< dim >::quad_f
private

Definition at line 546 of file step-feibm.cc.

template<int dim>
QIterated<dim> ImmersedFEM< dim >::quad_s
private

Definition at line 551 of file step-feibm.cc.

template<int dim>
double ImmersedFEM< dim >::scaling
private

Definition at line 611 of file step-feibm.cc.

template<int dim>
BlockSparsityPattern ImmersedFEM< dim >::sparsity
private

Definition at line 563 of file step-feibm.cc.

template<int dim>
Vector<double> ImmersedFEM< dim >::tmp_vec_n_dofs_up
private

Definition at line 606 of file step-feibm.cc.

template<int dim>
Vector<double> ImmersedFEM< dim >::tmp_vec_n_total_dofs
private

Definition at line 605 of file step-feibm.cc.

template<int dim>
Triangulation<dim> ImmersedFEM< dim >::tria_f
private

Definition at line 514 of file step-feibm.cc.

template<int dim>
Triangulation<dim, dim> ImmersedFEM< dim >::tria_s
private

Definition at line 518 of file step-feibm.cc.

template<int dim>
Vector<double> ImmersedFEM< dim >::unit_pressure
private

Definition at line 600 of file step-feibm.cc.


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