35#ifndef tr1_2d_supg2_axi_h
36#define tr1_2d_supg2_axi_h
40#define _IFT_TR1_2D_SUPG2_AXI_Name "tr1supg2axi"
95 const char *
giveClassName()
const override {
return "TR1_2D_SUPG2_AXI"; }
105 int node,
TimeStep *tStep)
override;
Domain * domain
Link to domain object, useful for communicating with other FEM components.
FloatArray normal
Interface segment normal.
double p
Line constant of line segment representing interface.
void updateElementForNewInterfacePosition(TimeStep *tStep) override
void computeLSICStabilizationTerm_MB(FloatMatrix &answer, TimeStep *tStep) override
void drawRawGeometry(oofegGraphicContext &gc, TimeStep *tStep) override
void computePressureTerm_MC(FloatMatrix &answer, TimeStep *tStep) override
void computeDiffusionDerivativeTerm_MC(FloatMatrix &answer, TimeStep *tStep) override
std::vector< FloatArray > vcoords[2]
void computeAdvectionDerivativeTerm_MB(FloatMatrix &answer, TimeStep *tStep) override
void giveElementCenter(LEPlic *mat_interface, FloatArray ¢er, bool updFlag) override
Computes the receiver center (in updated Lagrangian configuration).
TR1_2D_SUPG2_AXI(int n, Domain *d)
void computeDiffusionDerivativeTerm_MB(FloatMatrix &answer, MatResponseMode mode, TimeStep *tStep) override
void SPRNodalRecoveryMI_giveDofMansDeterminedByPatch(IntArray &answer, int pap) override
double computeVolumeAroundID(GaussPoint *gp, integrationDomain id, const std::vector< FloatArray > &idpoly)
const char * giveClassName() const override
double computeLEPLICVolumeFraction(const FloatArray &n, const double p, LEPlic *matInterface, bool updFlag) override
Computes corresponding volume fraction to given interface position.
void formVolumeInterfacePoly(Polygon &matvolpoly, LEPlic *matInterface, const FloatArray &normal, const double p, bool updFlag) override
Assembles receiver material polygon based solely on given interface line.
void SPRNodalRecoveryMI_giveSPRAssemblyPoints(IntArray &pap) override
void computeDiffusionTerm_MB(FloatArray &answer, TimeStep *tStep) override
void computeAdvectionDerivativeTerm_MC(FloatMatrix &answer, TimeStep *tStep) override
MaterialMode giveMaterialMode() override
Material * _giveMaterial(int indx)
void computeBMtrx(FloatMatrix &answer, GaussPoint *gp)
double truncateMatVolume(const Polygon &matvolpoly, double &volume) override
Truncates given material polygon to receiver.
void computeTangent(FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) override
SPRPatchType SPRNodalRecoveryMI_givePatchType() override
void formMyVolumePoly(Polygon &myPoly, LEPlic *mat_interface, bool updFlag) override
Assembles receiver volume.
void computeBCRhsTerm_MC(FloatArray &answer, TimeStep *tStep) override
double computeCriticalTimeStep(TimeStep *tStep) override
Computes the critical time increment.
void giveInputRecord(DynamicInputRecord &input) override
void computeAccelerationTerm_MC(FloatMatrix &answer, TimeStep *tStep) override
void computeGaussPoints() override
void computePressureTerm_MB(FloatMatrix &answer, TimeStep *tStep) override
void drawScalar(oofegGraphicContext &gc, TimeStep *tStep) override
void computeAdvectionTerm_MB(FloatArray &answer, TimeStep *tStep) override
void computeBCRhsTerm_MB(FloatArray &answer, TimeStep *tStep) override
void NodalAveragingRecoveryMI_computeNodalValue(FloatArray &answer, int node, InternalStateType type, TimeStep *tStep) override
void computeDiffusionTerm_MC(FloatArray &answer, TimeStep *tStep) override
int giveInternalStateAtNode(FloatArray &answer, InternalStateType type, InternalStateMode mode, int node, TimeStep *tStep) override
void printOutputAt(FILE *file, TimeStep *tStep) override
void computeAccelerationTerm_MB(FloatMatrix &answer, TimeStep *tStep) override
void computeDeviatoricStress(FloatArray &answer, const FloatArray &eps, GaussPoint *gp, TimeStep *tStep) override
Element * giveElement() override
Return number of receiver's element.
void updateVolumePolygons(Polygon &referenceFluidPoly, Polygon &secondFluidPoly, int &rfPoints, int &sfPoints, const FloatArray &normal, const double p, bool updFlag)
void updateIntegrationRules()
double computeRadiusAt(GaussPoint *gp)
const char * giveInputRecordName() const override
void computeAdvectionTerm_MC(FloatArray &answer, TimeStep *tStep) override
void formMaterialVolumePoly(Polygon &matvolpoly, LEPlic *matInterface, const FloatArray &normal, const double p, bool updFlag) override
Assembles the true element material polygon (takes receiver vof into accout).
int SPRNodalRecoveryMI_giveNumberOfIP() override
void computeLinearAdvectionTerm_MC(FloatMatrix &answer, TimeStep *tStep) override
void initializeFrom(InputRecord &ir, int priority) override
void computeNVector(FloatArray &answer, GaussPoint *gp)
double computeMyVolume(LEPlic *matInterface, bool updFlag) override
Computes the volume of receiver.
void updateStabilizationCoeffs(TimeStep *tStep) override
TR1_2D_SUPG(int n, Domain *d)
InternalStateMode
Determines the mode of internal variable.
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]
#define _IFT_TR1_2D_SUPG2_AXI_Name