svFSIplus
Functions
set_bc Namespace Reference

Functions

void calc_der_cpl_bc (ComMod &com_mod, const CmMod &cm_mod)
 
void cplBC_Integ_X (ComMod &com_mod, const CmMod &cm_mod, const bool RCRflag)
 Interface to call 0D code (cplBC) More...
 
void genBC_Integ_X (ComMod &com_mod, const CmMod &cm_mod, const std::string &genFlag)
 Interface to call 0D code (genBC/gcode) More...
 
void RCR_Integ_X (ComMod &com_mod, const CmMod &cm_mod, int istat)
 
void rcr_init (ComMod &com_mod, const CmMod &cm_mod)
 Initialize RCR variables (Xo) from flow field or using user- provided input. This subroutine is called only when the simulation is not restarted. More...
 
void set_bc_cmm (ComMod &com_mod, const CmMod &cm_mod, const Array< double > &Ag, const Array< double > &Dg)
 Below defines the SET_BC methods for the Coupled Momentum Method (CMM) More...
 
void set_bc_cmm_l (ComMod &com_mod, const CmMod &cm_mod, const faceType &lFa, const Array< double > &Ag, const Array< double > &Dg)
 
void set_bc_cpl (ComMod &com_mod, CmMod &cm_mod)
 Reproduces the Fortran 'SETBCCPL()' subrotutine. More...
 
void set_bc_dir (ComMod &com_mod, Array< double > &lA, Array< double > &lY, Array< double > &lD)
 Apply Dirichlet BCs strongly. More...
 
void set_bc_dir_l (ComMod &com_mod, const bcType &lBc, const faceType &lFa, Array< double > &lA, Array< double > &lY, int lDof)
 
void set_bc_dir_w (ComMod &com_mod, const Array< double > &Yg, const Array< double > &Dg)
 Weak treatment of Dirichlet boundary conditions. More...
 
void set_bc_dir_wl (ComMod &com_mod, const bcType &lBc, const mshType &lM, const faceType &lFa, const Array< double > &Yg, const Array< double > &Dg)
 Reproduces Fortran 'SETBCDIRWL'. More...
 
void set_bc_neu (ComMod &com_mod, const CmMod &cm_mod, const Array< double > &Yg, const Array< double > &Dg)
 Set outlet BCs. More...
 
void set_bc_neu_l (ComMod &com_mod, const CmMod &cm_mod, const bcType &lBc, const faceType &lFa, const Array< double > &Yg, const Array< double > &Dg)
 Set Neumann BC. More...
 
void set_bc_rbnl (ComMod &com_mod, const faceType &lFa, const double ks, const double cs, const bool isN, const Array< double > &Yg, const Array< double > &Dg)
 Set Robin BC. More...
 
void set_bc_trac_l (ComMod &com_mod, const CmMod &cm_mod, const bcType &lBc, const faceType &lFa)
 Set Traction BC. More...
 
void set_bc_undef_neu (ComMod &com_mod)
 Treat Neumann boundaries that are not deforming. More...
 
void set_bc_undef_neu_l (ComMod &com_mod, const bcType &lBc, const faceType &lFa)
 Modifies: com_mod.R, com_mod.Val. More...
 

Detailed Description

Copyright (c) Stanford University, The Regents of the University of California, and others.

All Rights Reserved.

See Copyright-SimVascular.txt for additional details.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Function Documentation

◆ cplBC_Integ_X()

void set_bc::cplBC_Integ_X ( ComMod com_mod,
const CmMod cm_mod,
const bool  RCRflag 
)

Interface to call 0D code (cplBC)

◆ genBC_Integ_X()

void set_bc::genBC_Integ_X ( ComMod com_mod,
const CmMod cm_mod,
const std::string &  genFlag 
)

Interface to call 0D code (genBC/gcode)

Todo:
[NOTE] not fully implemented.

◆ rcr_init()

void set_bc::rcr_init ( ComMod com_mod,
const CmMod cm_mod 
)

Initialize RCR variables (Xo) from flow field or using user- provided input. This subroutine is called only when the simulation is not restarted.

Replaces 'SUBROUTINE RCRINIT()'

◆ set_bc_cmm()

void set_bc::set_bc_cmm ( ComMod com_mod,
const CmMod cm_mod,
const Array< double > &  Ag,
const Array< double > &  Dg 
)

Below defines the SET_BC methods for the Coupled Momentum Method (CMM)

◆ set_bc_cpl()

void set_bc::set_bc_cpl ( ComMod com_mod,
CmMod cm_mod 
)

Reproduces the Fortran 'SETBCCPL()' subrotutine.

◆ set_bc_dir()

void set_bc::set_bc_dir ( ComMod com_mod,
Array< double > &  lA,
Array< double > &  lY,
Array< double > &  lD 
)

Apply Dirichlet BCs strongly.

Parameters lA - New time derivative of variables (An) lY - New variables (Yn) lD - New integrated variables (Dn)

Modfies: lA(tDof, tnNo) lY(tDof, tnNo) lD(tDof, tnNo) com_mod.Ad - Time derivative of displacement

Reproduces 'SUBROUTINE SETBCDIR(lA, lY, lD)'

◆ set_bc_dir_l()

void set_bc::set_bc_dir_l ( ComMod com_mod,
const bcType lBc,
const faceType lFa,
Array< double > &  lA,
Array< double > &  lY,
int  lDof 
)

Modifies: lA(lDof,lFa.nNo) lY(lDof,lFa.nNo)

Reproduces 'SUBROUTINE SETBCDIRL(lBc, lFa, lA, lY, lDof)'

◆ set_bc_dir_w()

void set_bc::set_bc_dir_w ( ComMod com_mod,
const Array< double > &  Yg,
const Array< double > &  Dg 
)

Weak treatment of Dirichlet boundary conditions.

◆ set_bc_dir_wl()

void set_bc::set_bc_dir_wl ( ComMod com_mod,
const bcType lBc,
const mshType lM,
const faceType lFa,
const Array< double > &  Yg,
const Array< double > &  Dg 
)

Reproduces Fortran 'SETBCDIRWL'.

◆ set_bc_neu()

void set_bc::set_bc_neu ( ComMod com_mod,
const CmMod cm_mod,
const Array< double > &  Yg,
const Array< double > &  Dg 
)

Set outlet BCs.

◆ set_bc_neu_l()

void set_bc::set_bc_neu_l ( ComMod com_mod,
const CmMod cm_mod,
const bcType lBc,
const faceType lFa,
const Array< double > &  Yg,
const Array< double > &  Dg 
)

Set Neumann BC.

◆ set_bc_rbnl()

void set_bc::set_bc_rbnl ( ComMod com_mod,
const faceType lFa,
const double  ks,
const double  cs,
const bool  isN,
const Array< double > &  Yg,
const Array< double > &  Dg 
)

Set Robin BC.

◆ set_bc_trac_l()

void set_bc::set_bc_trac_l ( ComMod com_mod,
const CmMod cm_mod,
const bcType lBc,
const faceType lFa 
)

Set Traction BC.

◆ set_bc_undef_neu()

void set_bc::set_bc_undef_neu ( ComMod com_mod)

Treat Neumann boundaries that are not deforming.

Leave the row corresponding to the master node of the owner process in the LHS matrix and the residual vector untouched. For all the other nodes of the face, set the residual to be 0 for velocity dofs. Zero out all the elements of corresponding rows of the LHS matrix. Make the diagonal elements of the LHS matrix equal to 1 and the column entry corresponding to the master node, -1

◆ set_bc_undef_neu_l()

void set_bc::set_bc_undef_neu_l ( ComMod com_mod,
const bcType lBc,
const faceType lFa 
)

Modifies: com_mod.R, com_mod.Val.