OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Element interface for LEPlic class representing Lagrangian-Eulerian (moving) material interface. More...
#include <leplic.h>
Public Member Functions | |
LEPlicElementInterface () | |
void | setTempLineConstant (double tp) |
void | setTempInterfaceNormal (FloatArray tg) |
void | setTempVolumeFraction (double v) |
void | setPermanentVolumeFraction (double v) |
void | addTempVolumeFraction (double v) |
double | giveVolumeFraction () |
double | giveTempVolumeFraction () |
void | giveTempInterfaceNormal (FloatArray &n) |
double | giveTempLineConstant () |
void | updateYourself (TimeStep *tStep) |
contextIOResultType | saveContext (DataStream &stream, ContextMode mode, void *obj=NULL) |
Stores context of receiver into given stream. More... | |
contextIOResultType | restoreContext (DataStream &stream, ContextMode mode, void *obj=NULL) |
Restores context of receiver from given stream. More... | |
The element interface required by LEPlicElementInterface | |
virtual double | computeLEPLICVolumeFraction (const FloatArray &n, const double p, LEPlic *matInterface, bool updFlag)=0 |
Computes corresponding volume fraction to given interface position. More... | |
virtual void | formMaterialVolumePoly (Polygon &matvolpoly, LEPlic *matInterface, const FloatArray &normal, const double p, bool updFlag)=0 |
Assembles the true element material polygon (takes receiver vof into accout). More... | |
virtual void | formVolumeInterfacePoly (Polygon &matvolpoly, LEPlic *matInterface, const FloatArray &normal, const double p, bool updFlag)=0 |
Assembles receiver material polygon based solely on given interface line. More... | |
virtual double | truncateMatVolume (const Polygon &matvolpoly, double &volume)=0 |
Truncates given material polygon to receiver. More... | |
virtual void | giveElementCenter (LEPlic *mat_interface, FloatArray ¢er, bool updFlag)=0 |
Computes the receiver center (in updated Lagrangian configuration). More... | |
virtual void | formMyVolumePoly (Polygon &myPoly, LEPlic *mat_interface, bool updFlag)=0 |
Assembles receiver volume. More... | |
virtual double | computeMyVolume (LEPlic *matInterface, bool updFlag)=0 |
Computes the volume of receiver. More... | |
bool | isBoundary () |
Returns true if cell is boundary. More... | |
virtual Element * | giveElement ()=0 |
Return number of receiver's element. More... | |
virtual double | computeCriticalLEPlicTimeStep (TimeStep *tStep)=0 |
Computes critical time step. More... | |
Public Member Functions inherited from oofem::Interface | |
Interface () | |
Constructor. More... | |
virtual | ~Interface () |
virtual const char * | giveClassName () const =0 |
Protected Attributes | |
bool | permanentVofFlag |
double | vof |
Volume fraction of reference fluid in element. More... | |
double | temp_vof |
double | p |
Line constant of line segment representing interface. More... | |
double | temp_p |
FloatArray | normal |
Interface segment normal. More... | |
FloatArray | temp_normal |
Element interface for LEPlic class representing Lagrangian-Eulerian (moving) material interface.
The elements should provide specific functionality in order to collaborate with LEPlic and this required functionality is declared in this interface.
|
inline |
Definition at line 70 of file leplic.h.
References computeCriticalLEPlicTimeStep(), computeLEPLICVolumeFraction(), computeMyVolume(), formMaterialVolumePoly(), formMyVolumePoly(), formVolumeInterfacePoly(), giveElement(), giveElementCenter(), isBoundary(), and truncateMatVolume().
|
inline |
Definition at line 110 of file leplic.h.
Referenced by oofem::LEPlic::doInterfaceRemapping().
|
pure virtual |
Computes critical time step.
Implemented in oofem::TR1_2D_SUPG, and oofem::TR1_2D_CBS.
Referenced by oofem::LEPlic::computeCriticalTimeStep(), and LEPlicElementInterface().
|
pure virtual |
Computes corresponding volume fraction to given interface position.
Implemented in oofem::TR1_2D_SUPG, oofem::TR1_2D_SUPG2, oofem::TR1_2D_SUPG2_AXI, and oofem::TR1_2D_CBS.
Referenced by oofem::LEPlic::computeLEPLICVolumeFractionWrapper::eval(), and LEPlicElementInterface().
|
pure virtual |
Computes the volume of receiver.
Implemented in oofem::TR1_2D_SUPG, oofem::TR1_2D_SUPG2, oofem::TR1_2D_SUPG2_AXI, and oofem::TR1_2D_CBS.
Referenced by LEPlicElementInterface().
|
pure virtual |
Assembles the true element material polygon (takes receiver vof into accout).
Implemented in oofem::TR1_2D_SUPG, oofem::TR1_2D_SUPG2, oofem::TR1_2D_SUPG2_AXI, and oofem::TR1_2D_CBS.
Referenced by oofem::LEPlic::doInterfaceRemapping(), and LEPlicElementInterface().
|
pure virtual |
Assembles receiver volume.
Implemented in oofem::TR1_2D_SUPG, oofem::TR1_2D_SUPG2, oofem::TR1_2D_SUPG2_AXI, and oofem::TR1_2D_CBS.
Referenced by LEPlicElementInterface().
|
pure virtual |
Assembles receiver material polygon based solely on given interface line.
Implemented in oofem::TR1_2D_SUPG, oofem::TR1_2D_SUPG2, oofem::TR1_2D_SUPG2_AXI, and oofem::TR1_2D_CBS.
Referenced by LEPlicElementInterface().
|
pure virtual |
Return number of receiver's element.
Implemented in oofem::TR1_2D_SUPG, oofem::TR1_2D_SUPG2, oofem::TR1_2D_SUPG2_AXI, and oofem::TR1_2D_CBS.
Referenced by isBoundary(), and LEPlicElementInterface().
|
pure virtual |
Computes the receiver center (in updated Lagrangian configuration).
Implemented in oofem::TR1_2D_SUPG, oofem::TR1_2D_SUPG2, oofem::TR1_2D_SUPG2_AXI, and oofem::TR1_2D_CBS.
Referenced by oofem::LEPlic::doCellDLS(), and LEPlicElementInterface().
|
inline |
Definition at line 120 of file leplic.h.
References temp_normal.
Referenced by oofem::LEPlic::doInterfaceRemapping().
|
inline |
Definition at line 121 of file leplic.h.
References temp_p.
Referenced by oofem::LEPlic::doInterfaceRemapping().
|
inline |
Definition at line 119 of file leplic.h.
References temp_vof.
Referenced by oofem::LEPlic::doCellDLS(), oofem::LEPlic::doInterfaceRemapping(), oofem::TR1_2D_CBS::giveInternalStateAtNode(), oofem::TR1_2D_CBS::giveIPValue(), oofem::TR1_2D_SUPG2::giveIPValue(), oofem::LEPlic::giveNodalScalarRepresentation(), and isBoundary().
|
inline |
Definition at line 118 of file leplic.h.
References vof.
Referenced by oofem::LEPlic::doCellDLS(), oofem::LEPlic::doInterfaceRemapping(), oofem::TR1_2D_SUPG2_AXI::printOutputAt(), oofem::TR1_2D_CBS::printOutputAt(), oofem::TR1_2D_SUPG2::printOutputAt(), and oofem::TR1_2D_SUPG::printOutputAt().
bool oofem::LEPlicElementInterface::isBoundary | ( | ) |
Returns true if cell is boundary.
Definition at line 54 of file leplic.C.
References oofem::Domain::giveConnectivityTable(), oofem::FEMComponent::giveDomain(), giveElement(), oofem::Domain::giveElement(), oofem::ConnectivityTable::giveElementNeighbourList(), oofem::FEMComponent::giveInterface(), oofem::FEMComponent::giveNumber(), giveTempVolumeFraction(), and oofem::LEPlicElementInterfaceType.
Referenced by LEPlicElementInterface().
contextIOResultType oofem::LEPlicElementInterface::restoreContext | ( | DataStream & | stream, |
ContextMode | mode, | ||
void * | obj = NULL |
||
) |
Restores context of receiver from given stream.
stream | stream where to read data |
mode | determines amount of info required in stream (state, definition,...) |
obj | pointer to integration point, which invokes this method |
Definition at line 107 of file leplic.C.
References oofem::CIO_IOERR, oofem::CIO_OK, normal, p, oofem::DataStream::read(), oofem::FloatArray::restoreYourself(), temp_normal, temp_p, temp_vof, THROW_CIOERR, and vof.
Referenced by oofem::TR1_2D_CBS::restoreContext(), oofem::TR1_2D_SUPG2::restoreContext(), oofem::TR1_2D_SUPG::restoreContext(), and updateYourself().
contextIOResultType oofem::LEPlicElementInterface::saveContext | ( | DataStream & | stream, |
ContextMode | mode, | ||
void * | obj = NULL |
||
) |
Stores context of receiver into given stream.
Only non-temp internal history variables are stored.
stream | stream where to write data |
mode | determines amount of info required in stream (state, definition,...) |
obj | pointer to integration point, which invokes this method |
Definition at line 86 of file leplic.C.
References oofem::CIO_IOERR, oofem::CIO_OK, normal, p, oofem::FloatArray::storeYourself(), THROW_CIOERR, vof, and oofem::DataStream::write().
Referenced by oofem::TR1_2D_CBS::saveContext(), oofem::TR1_2D_SUPG2::saveContext(), oofem::TR1_2D_SUPG::saveContext(), and updateYourself().
|
inline |
Definition at line 106 of file leplic.h.
Referenced by oofem::TR1_2D_SUPG2_AXI::initializeFrom(), oofem::TR1_2D_CBS::initializeFrom(), oofem::TR1_2D_SUPG2::initializeFrom(), and oofem::TR1_2D_SUPG::initializeFrom().
|
inline |
Definition at line 100 of file leplic.h.
Referenced by oofem::LEPlic::doInterfaceReconstruction().
|
inline |
Definition at line 99 of file leplic.h.
Referenced by oofem::LEPlic::doInterfaceReconstruction().
|
inline |
Definition at line 101 of file leplic.h.
Referenced by oofem::LEPlic::doInterfaceRemapping().
|
pure virtual |
Truncates given material polygon to receiver.
Implemented in oofem::TR1_2D_SUPG, oofem::TR1_2D_SUPG2, oofem::TR1_2D_SUPG2_AXI, and oofem::TR1_2D_CBS.
Referenced by oofem::LEPlic::doInterfaceRemapping(), and LEPlicElementInterface().
|
inline |
Definition at line 122 of file leplic.h.
References restoreContext(), saveContext(), temp_normal, temp_p, and temp_vof.
Referenced by oofem::TR1_2D_CBS::updateYourself(), oofem::TR1_2D_SUPG2::updateYourself(), and oofem::TR1_2D_SUPG::updateYourself().
|
protected |
Interface segment normal.
Definition at line 67 of file leplic.h.
Referenced by oofem::LEPlic::doInterfaceRemapping(), oofem::TR1_2D_SUPG2::giveInputRecordName(), oofem::TR1_2D_SUPG2_AXI::giveMaterialMode(), oofem::TR1_2D_CBS::giveMaterialMode(), oofem::TR1_2D_SUPG::giveMaterialMode(), restoreContext(), and saveContext().
|
protected |
Line constant of line segment representing interface.
Definition at line 65 of file leplic.h.
Referenced by oofem::TR1_2D_CBS::computeCorrectionRhs(), oofem::TR1_2D_CBS::computeDensityRhsPressureTerms(), oofem::TR1_2D_SUPG::computePressureTerm_MB(), oofem::TR1_2D_SUPG2::computePressureTerm_MB(), oofem::LEPlic::doInterfaceReconstruction(), oofem::TR1_2D_SUPG2_AXI::drawRawGeometry(), oofem::TR1_2D_CBS::drawRawGeometry(), oofem::TR1_2D_SUPG2::drawRawGeometry(), oofem::TR1_2D_SUPG::drawRawGeometry(), oofem::TR1_2D_SUPG2_AXI::drawScalar(), oofem::TR1_2D_CBS::drawScalar(), oofem::TR1_2D_SUPG2::drawScalar(), oofem::TR1_2D_SUPG::drawScalar(), oofem::LEPlic::giveClassName(), oofem::TR1_2D_SUPG2::giveInputRecordName(), oofem::TR1_2D_SUPG2_AXI::giveMaterialMode(), oofem::TR1_2D_CBS::giveMaterialMode(), oofem::TR1_2D_SUPG::giveMaterialMode(), restoreContext(), saveContext(), oofem::TR1_2D_SUPG2_AXI::updateIntegrationRules(), and oofem::TR1_2D_SUPG2::updateIntegrationRules().
|
protected |
Definition at line 61 of file leplic.h.
Referenced by oofem::TR1_2D_SUPG2_AXI::giveInputRecord(), oofem::TR1_2D_CBS::giveInputRecord(), oofem::TR1_2D_SUPG2::giveInputRecord(), and oofem::TR1_2D_SUPG::giveInputRecord().
|
protected |
Definition at line 67 of file leplic.h.
Referenced by oofem::TR1_2D_SUPG2_AXI::drawScalar(), oofem::TR1_2D_SUPG2::drawScalar(), oofem::TR1_2D_SUPG::drawScalar(), giveTempInterfaceNormal(), restoreContext(), oofem::TR1_2D_SUPG2_AXI::updateIntegrationRules(), oofem::TR1_2D_SUPG2::updateIntegrationRules(), and updateYourself().
|
protected |
Definition at line 65 of file leplic.h.
Referenced by oofem::TR1_2D_SUPG2_AXI::drawScalar(), oofem::TR1_2D_SUPG2::drawScalar(), oofem::TR1_2D_SUPG::drawScalar(), giveTempLineConstant(), restoreContext(), oofem::TR1_2D_SUPG2_AXI::updateIntegrationRules(), oofem::TR1_2D_SUPG2::updateIntegrationRules(), and updateYourself().
|
protected |
Definition at line 63 of file leplic.h.
Referenced by oofem::TR1_2D_SUPG2_AXI::computeDeviatoricStress(), oofem::TR1_2D_SUPG2::computeDeviatoricStress(), oofem::LEPlic::giveClassName(), giveTempVolumeFraction(), oofem::TR1_2D_SUPG2_AXI::initializeFrom(), oofem::TR1_2D_CBS::initializeFrom(), oofem::TR1_2D_SUPG2::initializeFrom(), oofem::TR1_2D_SUPG::initializeFrom(), restoreContext(), oofem::TR1_2D_SUPG2_AXI::updateIntegrationRules(), oofem::TR1_2D_SUPG2::updateIntegrationRules(), and updateYourself().
|
protected |
Volume fraction of reference fluid in element.
Definition at line 63 of file leplic.h.
Referenced by oofem::TR1_2D_CBS::formMaterialVolumePoly(), oofem::TR1_2D_SUPG2_AXI::formMaterialVolumePoly(), oofem::TR1_2D_SUPG2::formMaterialVolumePoly(), oofem::TR1_2D_SUPG::formMaterialVolumePoly(), oofem::TR1_2D_SUPG2_AXI::giveInputRecord(), oofem::TR1_2D_CBS::giveInputRecord(), oofem::TR1_2D_SUPG2::giveInputRecord(), oofem::TR1_2D_SUPG::giveInputRecord(), oofem::LEPlic::giveNodalScalarRepresentation(), giveVolumeFraction(), oofem::TR1_2D_SUPG2_AXI::initializeFrom(), oofem::TR1_2D_CBS::initializeFrom(), oofem::TR1_2D_SUPG2::initializeFrom(), oofem::TR1_2D_SUPG::initializeFrom(), oofem::TR1_2D_SUPG2::printOutputAt(), restoreContext(), saveContext(), oofem::TR1_2D_SUPG2_AXI::updateStabilizationCoeffs(), and oofem::TR1_2D_SUPG2::updateStabilizationCoeffs().