Flow123d  release_3.0.0-973-g92f55e826
Public Member Functions | Private Member Functions | Private Attributes | List of all members
P0_CouplingAssembler Class Reference

#include <mortar_assembly.hh>

Inheritance diagram for P0_CouplingAssembler:
Inheritance graph
[legend]
Collaboration diagram for P0_CouplingAssembler:
Collaboration graph
[legend]

Public Member Functions

 P0_CouplingAssembler (AssemblyDataPtr data)
 
void assembly (LocalElementAccessorBase< 3 > ele_ac)
 
void pressure_diff (LocalElementAccessorBase< 3 > ele_ac, double delta)
 
void fix_velocity_local (const IsecData &row_ele, const IsecData &col_ele)
 
- Public Member Functions inherited from MortarAssemblyBase
 MortarAssemblyBase (AssemblyDataPtr data)
 
virtual ~MortarAssemblyBase ()
 
void fix_velocity (LocalElementAccessorBase< 3 > ele_ac)
 

Private Member Functions

arma::mat & tensor_average (unsigned int row_dim, unsigned int col_dim)
 
void add_to_linsys (double scale)
 

Private Attributes

vector< IsecDataisec_data_list
 
std::vector< arma::mat > tensor_average_
 Row matrices to compute element pressure as average of boundary pressures. More...
 
std::vector< arma::vec > col_average_
 
IntersectionQuadratureP0 quadrature_
 
arma::mat product_
 
LocalElementAccessorBase< 3 > slave_ac_
 

Additional Inherited Members

- Public Types inherited from MortarAssemblyBase
typedef vector< unsigned int > IsecList
 
- Protected Attributes inherited from MortarAssemblyBase
AssemblyDataPtr data_
 
MixedMeshIntersectionsmixed_mesh_
 
LocalSystem loc_system_
 
bool fix_velocity_flag
 

Detailed Description

Definition at line 66 of file mortar_assembly.hh.

Constructor & Destructor Documentation

◆ P0_CouplingAssembler()

P0_CouplingAssembler::P0_CouplingAssembler ( AssemblyDataPtr  data)

Definition at line 15 of file mortar_assembly.cc.

Member Function Documentation

◆ add_to_linsys()

void P0_CouplingAssembler::add_to_linsys ( double  scale)
private

Definition at line 200 of file mortar_assembly.cc.

Here is the caller graph for this function:

◆ assembly()

void P0_CouplingAssembler::assembly ( LocalElementAccessorBase< 3 >  master_ac)
virtual

Works well but there is large error next to the boundary.

TODO:

  • pass through the master and all slaves and collect global dofs , bcd, solution. I.e. call Nx pressure_diff not NxNx.
  • Is it safe to have duplicate rows in local_system?
  • Is it better to have more smaller local system then single big one?
  • use one big or more smaller local systems to set.

    ?? How to deal with anisotropy ?? 3d-2d : compute nv of 2d triangle 2d-2d : interpret as 2d-1d-2d, should be symmetric master-slave 2d-1d : nv is tangent to 2d and normal to 1d arma::dot(data_->anisotropy.value( ele_centre, ele->element_accessor())*nv, nv)

Reimplemented from MortarAssemblyBase.

Definition at line 80 of file mortar_assembly.cc.

◆ fix_velocity_local()

void P0_CouplingAssembler::fix_velocity_local ( const IsecData row_ele,
const IsecData col_ele 
)

Definition at line 233 of file mortar_assembly.cc.

Here is the caller graph for this function:

◆ pressure_diff()

void P0_CouplingAssembler::pressure_diff ( LocalElementAccessorBase< 3 >  ele_ac,
double  delta 
)

Definition at line 38 of file mortar_assembly.cc.

Here is the caller graph for this function:

◆ tensor_average()

arma::mat& P0_CouplingAssembler::tensor_average ( unsigned int  row_dim,
unsigned int  col_dim 
)
inlineprivate

Definition at line 73 of file mortar_assembly.hh.

Here is the caller graph for this function:

Member Data Documentation

◆ col_average_

std::vector< arma::vec > P0_CouplingAssembler::col_average_
private

Definition at line 83 of file mortar_assembly.hh.

◆ isec_data_list

vector<IsecData> P0_CouplingAssembler::isec_data_list
private

Definition at line 79 of file mortar_assembly.hh.

◆ product_

arma::mat P0_CouplingAssembler::product_
private

Definition at line 85 of file mortar_assembly.hh.

◆ quadrature_

IntersectionQuadratureP0 P0_CouplingAssembler::quadrature_
private

Definition at line 84 of file mortar_assembly.hh.

◆ slave_ac_

LocalElementAccessorBase<3> P0_CouplingAssembler::slave_ac_
private

Definition at line 86 of file mortar_assembly.hh.

◆ tensor_average_

std::vector< arma::mat > P0_CouplingAssembler::tensor_average_
private

Row matrices to compute element pressure as average of boundary pressures.

Definition at line 82 of file mortar_assembly.hh.


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