|
#include <SCoupling.h>
Classes | |
struct | SCoupledElement |
Public Types | |
typedef O::ELEMENT | ELEMENT |
Public Member Functions | |
SCoupling ()=default | |
void | solveSurfaceCoupling () |
void | solveSurfaceCoupling (unsigned nStep) |
void | solveSurfaceCouplingFixedSolid () |
TriangleWall * | createTriangleWall (std::array< Vec3D, 3 > vertex) |
void | updateTriangleWall (TriangleWall *&wall, std::array< Vec3D, 3 > vertex) |
void | computeOneTimeStepForSCoupling (const unsigned &nStepsMercury) |
void | createDPMWallsFromFiniteElems () |
void | updateDPMWallsFromFiniteElems () |
void | updateTractionOnFiniteElems () |
bool | computeSCouplingForcesFromTriangles (ELEMENT *const elem_pt, const unsigned &nTriangles, unsigned &wallID, Vector< Vector< double > > &nodalCouplingForces) |
void | getElementBoundingBox (ELEMENT *&elem_pt, Vec3D &min, Vec3D &max) |
void | getSCoupledElements () |
void | coupleBoundary (unsigned b) |
void | coupleBoundaries (std::vector< unsigned > b) |
void | disableLogSurfaceCoupling () |
Public Member Functions inherited from BaseCoupling< M, O > | |
BaseCoupling ()=default | |
void | setName (std::string name) |
std::string | getName () const |
void | removeOldFiles () const |
void | writeEneTimeStep (std::ostream &os) const override |
void | writeEneHeader (std::ostream &os) const override |
void | solveOomph () |
void | solveMercury (unsigned long nt) |
void | setCGWidth (const double &width) |
double | getCGWidth () |
bool | useCGMapping () |
CGFunctions::LucyXYZ | getCGFunction () |
Private Attributes | |
Vector< SCoupledElement > | sCoupledElements_ |
List of surface-coupled elements. More... | |
std::vector< TriangleWall * > | triangleWalls_ |
List of triangle walls used for the surface coupling. More... | |
std::vector< unsigned > | coupledBoundaries_ |
bool | logSurfaceCoupling = true |
|
inline |
Solve surface-coupled problem for one oomph time step (n mercury time steps)
References INFO, logger, BaseCoupling< M, O >::solveMercury(), and BaseCoupling< M, O >::solveOomph().
|
inline |
Computes nodal scoupling forces from triangles.
[in] | elem_pt | pointer to the element for which forces are computed |
[in] | nTriangles | number of triangles (equals number of nodes of the traction element) |
[in,out] | wallID | |
[out] | nodalCouplingForces[l] | = sum_i f * psi(l,cp) for each shape function l, interaction i, evaluated at contact point cp |
References BaseInteractable::getInteractions(), Vec3D::getX(), Vec3D::getY(), Vec3D::getZ(), constants::i, and n.
|
inline |
Referenced by ElementAnalysis::ElementAnalysis(), main(), CoupledBeam::setupOomph(), and CoupledProblem::setupOomph().
References n, Vec3D::setX(), Vec3D::setY(), and Vec3D::setZ().
|
inline |
Create a triangle wall from a set of vertices
vertex |
References BaseObject::setGroupId(), BaseWall::setSpecies(), and TriangleWall::setVertices().
|
inline |
needed in computeSCouplingForcesFromCG to decide which particles affect a given element
References BaseCoupling< M, O >::getCGWidth(), logger, n, Vec3D::X, Vec3D::Y, and Vec3D::Z.
Get bulk elements along boundaries (SCoupling). The results are stored in sCoupledElements_.
References SCoupling< M, O >::SCoupledElement::bulk_elem_pt, SCoupling< M, O >::SCoupledElement::center_local, SCoupling< M, O >::SCoupledElement::face_index, constants::i, INFO, logger, n, SCoupling< M, O >::SCoupledElement::node_pt, and SCoupling< M, O >::SCoupledElement::surface_node_position_pt.
Referenced by CoupledBeam::CoupledBeam(), CoupledProblem::CoupledProblem(), and main().
References n.
sets nodal_coupling_residual in each scoupled element
|
inline |
Update the position of a triangle wall (used in updateDPMWallsFromFiniteElems)
why is it using setPrescribedPosition
we need to set velocity
References BaseInteractable::getPosition(), TriangleWall::getVertices(), BaseInteractable::setPrescribedPosition(), BaseInteractable::setPrescribedVelocity(), and TriangleWall::setVertices().
Function to determine whether boundary is coupled. Needs to be set before solveSurfaceCoupling is called.
|
private |
List of surface-coupled elements.
|
private |
List of triangle walls used for the surface coupling.