OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::LEPlicElementInterface Class Referenceabstract

Element interface for LEPlic class representing Lagrangian-Eulerian (moving) material interface. More...

#include <leplic.h>

+ Inheritance diagram for oofem::LEPlicElementInterface:
+ Collaboration diagram for oofem::LEPlicElementInterface:

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 &center, 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 ElementgiveElement ()=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
 

Detailed Description

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.

Definition at line 58 of file leplic.h.

Constructor & Destructor Documentation

Member Function Documentation

void oofem::LEPlicElementInterface::addTempVolumeFraction ( double  v)
inline

Definition at line 110 of file leplic.h.

Referenced by oofem::LEPlic::doInterfaceRemapping().

virtual double oofem::LEPlicElementInterface::computeCriticalLEPlicTimeStep ( TimeStep tStep)
pure virtual

Computes critical time step.

Implemented in oofem::TR1_2D_SUPG, and oofem::TR1_2D_CBS.

Referenced by oofem::LEPlic::computeCriticalTimeStep(), and LEPlicElementInterface().

virtual double oofem::LEPlicElementInterface::computeLEPLICVolumeFraction ( const FloatArray n,
const double  p,
LEPlic matInterface,
bool  updFlag 
)
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().

virtual double oofem::LEPlicElementInterface::computeMyVolume ( LEPlic matInterface,
bool  updFlag 
)
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().

virtual void oofem::LEPlicElementInterface::formMaterialVolumePoly ( Polygon matvolpoly,
LEPlic matInterface,
const FloatArray normal,
const double  p,
bool  updFlag 
)
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().

virtual void oofem::LEPlicElementInterface::formMyVolumePoly ( Polygon myPoly,
LEPlic mat_interface,
bool  updFlag 
)
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().

virtual void oofem::LEPlicElementInterface::formVolumeInterfacePoly ( Polygon matvolpoly,
LEPlic matInterface,
const FloatArray normal,
const double  p,
bool  updFlag 
)
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().

virtual Element* oofem::LEPlicElementInterface::giveElement ( )
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().

virtual void oofem::LEPlicElementInterface::giveElementCenter ( LEPlic mat_interface,
FloatArray center,
bool  updFlag 
)
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().

void oofem::LEPlicElementInterface::giveTempInterfaceNormal ( FloatArray n)
inline

Definition at line 120 of file leplic.h.

References temp_normal.

Referenced by oofem::LEPlic::doInterfaceRemapping().

double oofem::LEPlicElementInterface::giveTempLineConstant ( )
inline

Definition at line 121 of file leplic.h.

References temp_p.

Referenced by oofem::LEPlic::doInterfaceRemapping().

contextIOResultType oofem::LEPlicElementInterface::restoreContext ( DataStream stream,
ContextMode  mode,
void *  obj = NULL 
)

Restores context of receiver from given stream.

Parameters
streamstream where to read data
modedetermines amount of info required in stream (state, definition,...)
objpointer to integration point, which invokes this method
Returns
contextIOResultType.

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.

Parameters
streamstream where to write data
modedetermines amount of info required in stream (state, definition,...)
objpointer to integration point, which invokes this method
Returns
contextIOResultType.

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().

void oofem::LEPlicElementInterface::setPermanentVolumeFraction ( double  v)
inline
void oofem::LEPlicElementInterface::setTempInterfaceNormal ( FloatArray  tg)
inline

Definition at line 100 of file leplic.h.

Referenced by oofem::LEPlic::doInterfaceReconstruction().

void oofem::LEPlicElementInterface::setTempLineConstant ( double  tp)
inline

Definition at line 99 of file leplic.h.

Referenced by oofem::LEPlic::doInterfaceReconstruction().

void oofem::LEPlicElementInterface::setTempVolumeFraction ( double  v)
inline

Definition at line 101 of file leplic.h.

Referenced by oofem::LEPlic::doInterfaceRemapping().

virtual double oofem::LEPlicElementInterface::truncateMatVolume ( const Polygon matvolpoly,
double &  volume 
)
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().

void oofem::LEPlicElementInterface::updateYourself ( TimeStep tStep)
inline

Member Data Documentation

bool oofem::LEPlicElementInterface::permanentVofFlag
protected

The documentation for this class was generated from the following files:

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:37 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011