|
#include <VCoupling.h>
Classes | |
struct | DPMVCoupledElement |
Public Types | |
typedef VolumeCoupledElement< OomphProblem::ELEMENT > | VELEMENT |
Public Member Functions | |
VolumeCoupling ()=default | |
VolumeCoupling (const double &wMin, const bool &flag) | |
void | computeExternalForces (BaseParticle *CI) override |
void | actionsAfterTimeStep () override |
void | solveVolumeCoupling (const double &width) |
void | solveVolumeCoupling () |
void | computeOneTimeStepForVCoupling (const unsigned &nstep) |
void | solveFirstHalfTimeStep () |
void | solveSecondHalfTimeStep () |
void | checkParticlesInFiniteElems () |
void | setNodalWeightOnCubicMesh () |
void | setNodalWeightByDistance () |
void | getProjectionAndProjected (const DPMVCoupledElement &coupled_elem, Vector< Vector< double >> &couplingMatrix, Vector< Vector< double >> &nodalDisplDPM) |
void | getProjectionMatrix (const DPMVCoupledElement &coupled_elem, Vector< Vector< double >> &couplingMatrix) |
void | computeCouplingForce () |
void | computeCouplingOnFEM () |
void | computeCouplingOnDPM () |
void | computeNodalCouplingForces (VELEMENT *&elem_pt, const unsigned &nnode, const unsigned &dim, const Vector< Vector< double >> &nodalDisplDPM, Vector< Vector< double >> &nodalCouplingForces) |
void | getBulkStiffness (VELEMENT *&elem_pt, Vector< Vector< double >> &bulkStiffness) |
void | getInvCoupledMassPerTime (const DPMVCoupledElement &elem, const Vector< Vector< double >> &couplingMatrix, const Vector< Vector< double >> &bulkStiffness, Vector< double > &invCMassPerTime) |
void | computeWeightOnParticles () |
void | setExplicit (const bool &flag) |
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< DPMVCoupledElement > | listOfDPMVCoupledElements_ |
double | weightMin_ = 0.0 |
bool | explicit_ = false |
typedef VolumeCoupledElement<OomphProblem::ELEMENT> VolumeCoupling::VELEMENT |
|
default |
References setExplicit(), and weightMin_.
|
inlineoverride |
Override actionsAfterTimeStep to reset vcoupling force
References Vec3D::getLengthSquared(), constants::i, INFO, logger, and n.
Referenced by solveSecondHalfTimeStep().
|
inline |
References VolumeCoupling::DPMVCoupledElement::bulk_elem_pt, BaseCoupling< M, O >::getCGWidth(), Vec3D::getX(), Vec3D::getY(), Vec3D::getZ(), Global_Physical_Variables::lenScale, VolumeCoupling::DPMVCoupledElement::listOfCoupledParticles, VolumeCoupling::DPMVCoupledElement::listOfCoupledParticlesExt, listOfDPMVCoupledElements_, VolumeCoupling::DPMVCoupledElement::listOfParticleCentersLoc, VolumeCoupling::DPMVCoupledElement::listOfShapesAtParticleCenters, n, BaseCoupling< M, O >::useCGMapping(), Vec3D::X, Vec3D::Y, and Vec3D::Z.
Referenced by computeOneTimeStepForVCoupling().
|
inline |
References computeNodalCouplingForces(), getProjectionAndProjected(), constants::i, listOfDPMVCoupledElements_, and BaseCoupling< M, O >::useCGMapping().
Referenced by computeOneTimeStepForVCoupling().
|
inline |
References listOfDPMVCoupledElements_, and BaseCoupling< M, O >::useCGMapping().
Referenced by computeOneTimeStepForVCoupling().
|
inline |
References getBulkStiffness(), getProjectionMatrix(), Vec3D::getX(), Vec3D::getY(), Vec3D::getZ(), constants::i, Global_Physical_Variables::lenScale, listOfDPMVCoupledElements_, and BaseCoupling< M, O >::useCGMapping().
Referenced by computeOneTimeStepForVCoupling().
|
inlineoverride |
Override computeExternalForces to add the vcoupling forces
References BaseInteractable::addForce(), BaseParticle::getMass(), and BaseParticle::isFixed().
|
inline |
References constants::i.
Referenced by computeCouplingForce().
|
inline |
References checkParticlesInFiniteElems(), computeCouplingForce(), computeCouplingOnDPM(), computeCouplingOnFEM(), computeWeightOnParticles(), explicit_, listOfDPMVCoupledElements_, setNodalWeightByDistance(), solveFirstHalfTimeStep(), BaseCoupling< M, O >::solveMercury(), BaseCoupling< M, O >::solveOomph(), and solveSecondHalfTimeStep().
Referenced by solveVolumeCoupling().
|
inline |
References explicit_, Vec3D::getX(), Vec3D::getY(), Vec3D::getZ(), constants::i, Global_Physical_Variables::lenScale, and listOfDPMVCoupledElements_.
Referenced by computeOneTimeStepForVCoupling().
|
inline |
Referenced by computeCouplingOnFEM().
|
inline |
References VolumeCoupling::DPMVCoupledElement::listOfCoupledParticles, VolumeCoupling::DPMVCoupledElement::listOfCoupledParticlesExt, Global_Physical_Variables::timeScale, and BaseCoupling< M, O >::useCGMapping().
|
inline |
References VolumeCoupling::DPMVCoupledElement::bulk_elem_pt, getProjectionMatrix(), Vec3D::getX(), Vec3D::getY(), Vec3D::getZ(), constants::i, Global_Physical_Variables::lenScale, VolumeCoupling::DPMVCoupledElement::listOfCoupledParticles, VolumeCoupling::DPMVCoupledElement::listOfCoupledParticlesExt, and BaseCoupling< M, O >::useCGMapping().
Referenced by computeCouplingForce().
|
inline |
References VolumeCoupling::DPMVCoupledElement::bulk_elem_pt, CGFunctions::Polynomial< Coordinates >::evaluateCGFunction(), BaseCoupling< M, O >::getCGFunction(), constants::i, Global_Physical_Variables::lenScale, VolumeCoupling::DPMVCoupledElement::listOfCoupledParticles, VolumeCoupling::DPMVCoupledElement::listOfCoupledParticlesExt, VolumeCoupling::DPMVCoupledElement::listOfShapesAtParticleCenters, CGCoordinates::XYZ::setXYZ(), and BaseCoupling< M, O >::useCGMapping().
Referenced by computeCouplingOnFEM(), and getProjectionAndProjected().
|
inline |
|
inline |
used in computeOneTimeStepForVCoupling (VolumeCoupling)
assign coupling weight to coupled solid nodes implicit volume coupling allows the minimal coupling weight to be very small e.g. double weightMin = 0.1 for the explicit volume coupling scheme
References listOfDPMVCoupledElements_, n, and weightMin_.
Referenced by computeOneTimeStepForVCoupling().
|
inline |
VolumeCoupling: setNodalWeightOnCubicMesh
References listOfDPMVCoupledElements_, and n.
|
inline |
Used in OomphMercuryCoupling::computeOneTimeStepForVCoupling to do the actions before time step
Referenced by computeOneTimeStepForVCoupling().
|
inline |
Used in OomphMercuryCoupling::computeOneTimeStepForVCoupling to do the actions after time step
References actionsAfterTimeStep(), DEBUG, and logger.
Referenced by computeOneTimeStepForVCoupling().
|
inline |
References computeOneTimeStepForVCoupling().
Referenced by solveVolumeCoupling().
|
inline |
References BaseCoupling< M, O >::setCGWidth(), and solveVolumeCoupling().
|
private |
Referenced by computeOneTimeStepForVCoupling(), computeWeightOnParticles(), and setExplicit().
|
private |
|
private |
Referenced by setNodalWeightByDistance(), and VolumeCoupling().