svFSIplus
Functions
nn Namespace Reference

Functions

void get_gip (const int insd, consts::ElementType eType, const int nG, Vector< double > &w, Array< double > &xi)
 
void get_gip (mshType &mesh)
 Define Gauss integration points in local (ref) coordinates. More...
 
void get_gip (Simulation *simulation, faceType &face)
 
void get_gnn (const int insd, consts::ElementType eType, const int eNoN, const int g, Array< double > &xi, Array< double > &N, Array3< double > &Nx)
 Computes shape functions and derivatives at given natural coords. More...
 
void get_gnn (const int nsd, consts::ElementType eType, const int eNoN, Vector< double > &xi, Vector< double > &N, Array< double > &Nx)
 A big fat hack because the Fortran GETNN() operates on primitive types but the C++ version does not, uses Array and Vector objects. More...
 
void get_gnn (int gaus_pt, mshType &mesh)
 
void get_gnn (Simulation *simulation, int gaus_pt, faceType &face)
 
void get_gn_nxx (const int insd, const int ind2, consts::ElementType eType, const int eNoN, const int gaus_pt, const Array< double > &xi, Array3< double > &Nxx)
 Returns second order derivatives at given natural coords. More...
 
void get_nn_bnds (const int nsd, consts::ElementType eType, const int eNoN, Array< double > &xib, Array< double > &Nb)
 Sets bounds on Gauss integration points in parametric space and bounds on shape functions. More...
 
void get_nn_bnds (const ComMod &com_mod, mshType &mesh)
 Sets bounds on Gauss integration points in parametric space and bounds on shape functions. More...
 
void get_nnx (const int nsd, const consts::ElementType eType, const int eNoN, const Array< double > &xl, const Array< double > &xib, const Array< double > &Nb, const Vector< double > &xp, Vector< double > &xi, Vector< double > &N, Array< double > &Nx)
 
void get_xi (const int nsd, consts::ElementType eType, const int eNoN, const Array< double > &xl, const Vector< double > &xp, Vector< double > &xi, bool &flag)
 Inverse maps {xp} to {$\xi$} in an element with coordinates {xl} using Newton's method. More...
 
void gnn (const int eNoN, const int nsd, const int insd, Array< double > &Nxi, Array< double > &x, Array< double > &Nx, double &Jac, Array< double > &ks)
 
void gnnb (const ComMod &com_mod, const faceType &lFa, const int e, const int g, const int nsd, const int insd, const int eNoNb, const Array< double > &Nx, Vector< double > &n)
 This routine returns a vector at element "e" and Gauss point 'g' of face 'lFa' that is the normal weigthed by Jac, i.e. Jac = SQRT(NORM(n)). More...
 
void gnns (const int nsd, const int eNoN, const Array< double > &Nxi, Array< double > &xl, Vector< double > &nV, Array< double > &gCov, Array< double > &gCnv)
 Compute shell kinematics: normal vector, covariant & contravariant basis vectors. More...
 
void gn_nxx (const int l, const int eNoN, const int nsd, const int insd, Array< double > &Nxi, Array< double > &Nxi2, Array< double > &lx, Array< double > &Nx, Array< double > &Nxx)
 Compute second order derivative on parent element. More...
 
void select_ele (const ComMod &com_mod, mshType &mesh)
 Set mesh properties for the input element type. More...
 
void select_eleb (Simulation *simulation, mshType &mesh, faceType &face)
 Set face properties for the input element type. 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

◆ get_gip()

void nn::get_gip ( mshType mesh)

Define Gauss integration points in local (ref) coordinates.

Todo:
[NOTE] There should just have a single map for mesh and face types.

◆ get_gn_nxx()

void nn::get_gn_nxx ( const int  insd,
const int  ind2,
consts::ElementType  eType,
const int  eNoN,
const int  gaus_pt,
const Array< double > &  xi,
Array3< double > &  Nxx 
)

Returns second order derivatives at given natural coords.

Replicates 'SUBROUTINE GETGNNxx(insd, ind2, eType, eNoN, xi, Nxx)'.

◆ get_gnn() [1/2]

void nn::get_gnn ( const int  insd,
consts::ElementType  eType,
const int  eNoN,
const int  g,
Array< double > &  xi,
Array< double > &  N,
Array3< double > &  Nx 
)

Computes shape functions and derivatives at given natural coords.

◆ get_gnn() [2/2]

void nn::get_gnn ( const int  nsd,
consts::ElementType  eType,
const int  eNoN,
Vector< double > &  xi,
Vector< double > &  N,
Array< double > &  Nx 
)

A big fat hack because the Fortran GETNN() operates on primitive types but the C++ version does not, uses Array and Vector objects.

◆ get_nn_bnds() [1/2]

void nn::get_nn_bnds ( const ComMod com_mod,
mshType mesh 
)

Sets bounds on Gauss integration points in parametric space and bounds on shape functions.

Modifies: mesh % xib(2,nsd) - Bounds on Gauss integration points in parametric space mesh % Nb(2,mesh % eNoN) - Bounds on shape functions

Replicates Fortran SUBROUTINE GETNNBNDS.

◆ get_nn_bnds() [2/2]

void nn::get_nn_bnds ( const int  nsd,
consts::ElementType  eType,
const int  eNoN,
Array< double > &  xib,
Array< double > &  Nb 
)

Sets bounds on Gauss integration points in parametric space and bounds on shape functions.

Reproduces the Fortran 'GETNNBNDS' subroutine.

◆ get_xi()

void nn::get_xi ( const int  nsd,
consts::ElementType  eType,
const int  eNoN,
const Array< double > &  xl,
const Vector< double > &  xp,
Vector< double > &  xi,
bool &  flag 
)

Inverse maps {xp} to {$\xi$} in an element with coordinates {xl} using Newton's method.

◆ gn_nxx()

void nn::gn_nxx ( const int  l,
const int  eNoN,
const int  nsd,
const int  insd,
Array< double > &  Nxi,
Array< double > &  Nxi2,
Array< double > &  lx,
Array< double > &  Nx,
Array< double > &  Nxx 
)

Compute second order derivative on parent element.

◆ gnnb()

void nn::gnnb ( const ComMod com_mod,
const faceType lFa,
const int  e,
const int  g,
const int  nsd,
const int  insd,
const int  eNoNb,
const Array< double > &  Nx,
Vector< double > &  n 
)

This routine returns a vector at element "e" and Gauss point 'g' of face 'lFa' that is the normal weigthed by Jac, i.e. Jac = SQRT(NORM(n)).

Reproduce Fortran 'GNNB'.

◆ gnns()

void nn::gnns ( const int  nsd,
const int  eNoN,
const Array< double > &  Nxi,
Array< double > &  xl,
Vector< double > &  nV,
Array< double > &  gCov,
Array< double > &  gCnv 
)

Compute shell kinematics: normal vector, covariant & contravariant basis vectors.

Replicates 'SUBROUTINE GNNS(eNoN, Nxi, xl, nV, gCov, gCnv)' defined in NN.f.

◆ select_ele()

void nn::select_ele ( const ComMod com_mod,
mshType mesh 
)

Set mesh properties for the input element type.

Mesh data set mesh % eType - element type (e.g. eType_TET4) mesh % nG - number of element gauss points mesh % vtkType - element VTK type (e.g. 10 for tet4) mesh % nEf - number of element faces mesh % lShpF - if the basis function is linear

Mesh arrays allocated mesh % w(mesh % nG) - Gauss weights mesh % xi(insd,mesh % nG) - Gauss integration points in parametric space mesh % N(mesh % eNoN,mesh % nG) - Parent shape function mesh % Nx(insd, mesh % eNoN, mesh % nG) - Parent shape functions gradient mesh % xib(2,nsd) - Bounds on Gauss integration points in parametric space mesh % Nb(2,mesh % eNoN) - Bounds on shape functions

◆ select_eleb()

void nn::select_eleb ( Simulation simulation,
mshType mesh,
faceType face 
)

Set face properties for the input element type.

Face data set face % eType - element type (e.g. eType_TET4)