NeoPZ
|
Computes the contribution over an interface between two discontinuous elements. Computational Element. More...
#include <TPZMultiphysicsInterfaceEl.h>
Public Member Functions | |
TPZMultiphysicsInterfaceElement () | |
Default constructor. More... | |
TPZMultiphysicsInterfaceElement (TPZCompMesh &mesh, TPZGeoEl *ref, int64_t &index, TPZCompElSide left, TPZCompElSide right) | |
Constructor. More... | |
TPZMultiphysicsInterfaceElement (TPZCompMesh &mesh, const TPZMultiphysicsInterfaceElement ©) | |
create a copy of the given element More... | |
TPZMultiphysicsInterfaceElement (TPZCompMesh &mesh, const TPZMultiphysicsInterfaceElement ©, std::map< int64_t, int64_t > &gl2lcConMap, std::map< int64_t, int64_t > &gl2lcElMap) | |
create a copy of the given element using index mapping More... | |
virtual TPZCompEl * | Clone (TPZCompMesh &mesh) const override |
Method for creating a copy of the element. More... | |
virtual TPZCompEl * | ClonePatchEl (TPZCompMesh &mesh, std::map< int64_t, int64_t > &gl2lcConMap, std::map< int64_t, int64_t > &gl2lcElMap) const override |
Method for creating a copy of the element in a patch mesh. More... | |
void | IncrementElConnected () |
Informs the connect that this element is connected to it. More... | |
virtual | ~TPZMultiphysicsInterfaceElement () |
Default destructor. More... | |
void | ComputeSideTransform (TPZManVector< TPZCompElSide > &Neighbor, TPZManVector< TPZTransform<> > &transf) |
Compute the transform of a paramenter point in the multiphysic interface element to a parameter point in the neighbor super element. More... | |
void | MapQsi (TPZManVector< TPZCompElSide > &Neighbor, TPZVec< REAL > &qsi, TPZVec< REAL > &NeighIntPoint) |
Maps qsi coordinate at this master element to qsi coordinate at neighbor master element. More... | |
void | SetLeftRightElement (const TPZCompElSide &leftel, const TPZCompElSide &rightel) |
void | SetLeftRightElementIndices (const TPZVec< int64_t > &lefindices, const TPZVec< int64_t > &rightindices) |
void | GetLeftRightElement (TPZCompElSide &leftel, TPZCompElSide &rightel) |
virtual void | SetConnectIndex (int inode, int64_t index) override |
Set the index i to node inode. More... | |
virtual int | NConnects () const override |
Returns the number of nodes of the element. More... | |
virtual int64_t | ConnectIndex (int i) const override |
Returns the index of the ith connectivity of the element. More... | |
virtual int | Dimension () const override |
Dimension of the element. More... | |
void | CalcStiff (TPZElementMatrix &ek, TPZElementMatrix &ef) override |
void | CalcStiff (TPZElementMatrix &ef) |
void | CreateIntegrationRule () |
const TPZIntPoints & | GetIntegrationRule () const override |
virtual int | ComputeIntegrationOrder () const override |
virtual void | ComputeRequiredData (TPZVec< REAL > &intpointtemp, TPZVec< TPZTransform<> > &trvec, TPZVec< TPZMaterialData > &datavec) |
Compute and fill data with requested attributes for each of the compels in fElementVec. More... | |
void | InitializeElementMatrix (TPZElementMatrix &ek, TPZElementMatrix &ef) |
Initialize the structure of the stiffness matrix. More... | |
void | InitializeElementMatrix (TPZElementMatrix &ef) |
Initialize the structure of the stiffness matrix. More... | |
TPZCompElSide | Left () const |
access function to the left element More... | |
TPZCompEl * | RightElement () const |
Returns the right element from the element interface. More... | |
TPZCompEl * | LeftElement () const |
Returns the left element from the element interface. More... | |
void | ComputeCenterNormal (TPZVec< REAL > &normal) const |
virtual void | Print (std::ostream &out=std::cout) const override |
Prints element data. More... | |
void | InitMaterialData (TPZMaterialData ¢er_data, TPZVec< TPZMaterialData > &data_left, TPZVec< TPZMaterialData > &data_right) |
Initialize the material data structures. More... | |
void | InitMaterialData (TPZMaterialData &data) |
initialize the material data for the geometric data More... | |
virtual void | ComputeRequiredData (TPZMaterialData &data, TPZVec< REAL > &point) |
Compute the data needed to compute the stiffness matrix at the integration point. More... | |
void | ComputeRequiredData (TPZVec< REAL > &point, TPZVec< TPZTransform<> > &trvec, TPZMultiphysicsElement *Neighbour, TPZVec< TPZMaterialData > &data) |
Compute the required data from the neighbouring elements. More... | |
void | ComputeSideTransform (TPZCompElSide &Neighbor, TPZTransform<> &transf) |
TPZCompElSide | Right () const |
Access function to the right element. More... | |
virtual int | nmeshes () |
virtual void | BuildCornerConnectList (std::set< int64_t > &connectindexes) const override |
adds the connect indexes associated with base shape functions to the set More... | |
virtual void | Solution (TPZVec< REAL > &qsi, int var, TPZVec< STATE > &sol) override |
Calculates the solution - sol - for the variable var at point qsi, where qsi is expressed in terms of the master element coordinates. More... | |
virtual void | CreateGraphicalElement (TPZGraphMesh &grmesh, int dimension) override |
Creates corresponding graphical element(s) if the dimension matches graphical elements are used to generate output files. More... | |
virtual int | NumberOfCompElementsInsideThisCompEl () override |
Return the size of the elementvec in multiphysics, if it is not multiphysics, just return 1. More... | |
virtual int | ClassId () const override |
Define the class id associated with the class. More... | |
void | EvaluateError (std::function< void(const TPZVec< REAL > &loc, TPZVec< STATE > &val, TPZFMatrix< STATE > &deriv)> fp, TPZVec< REAL > &, bool store_error) override |
Performs an error estimate on the elemen. More... | |
Public Member Functions inherited from TPZCompEl | |
TPZCompEl () | |
Simple Constructor. More... | |
virtual | ~TPZCompEl () |
Simple destructor. More... | |
TPZCompEl (TPZCompMesh &mesh, const TPZCompEl ©) | |
Put a copy of the element in the referred mesh. More... | |
TPZCompEl (TPZCompMesh &mesh, const TPZCompEl ©, std::map< int64_t, int64_t > &gl2lcElMap) | |
Put a copy of the element in the patch mesh. More... | |
TPZCompEl (TPZCompMesh &mesh, const TPZCompEl ©, int64_t &index) | |
Copy of the element in the new mesh returning allocated index. More... | |
TPZCompEl (TPZCompMesh &mesh, TPZGeoEl *gel, int64_t &index) | |
Creates a computational element within mesh. Inserts the element within the data structure of the mesh. More... | |
virtual void | SetCreateFunctions (TPZCompMesh *mesh) |
Sets create function in TPZCompMesh to create elements of this type. More... | |
virtual REAL | VolumeOfEl () |
Returns the volume of the geometric element associated. More... | |
virtual void | LoadElementReference () |
Loads the geometric element reference. More... | |
virtual REAL | CompareElement (int var, char *matname) |
This method computes the norm of the difference of a post processed variable with @ the same post processed variable of the element pointed to by the geometric element. More... | |
virtual void | Assemble () |
Computes the element stifness matrix and right hand side in an internal data structure. Used for initializing condensed element data structures. More... | |
virtual bool | HasMaterial (const std::set< int > &materialids) const |
Verifies if the material associated with the element is contained in the set. More... | |
virtual void | CalcResidual (TPZElementMatrix &ef) |
Computes the element right hand side. More... | |
virtual void | Divide (int64_t index, TPZVec< int64_t > &subindex, int interpolate=0) |
Divide the computational element. If interpolate = 1, the solution is interpolated to the sub elements. More... | |
virtual void | ProjectFlux (TPZElementMatrix &ek, TPZElementMatrix &ef) |
Projects the flux function on the finite element space. More... | |
virtual void | ComputeError (int errorid, TPZVec< REAL > &error) |
ComputeError computes the element error estimator. More... | |
virtual void | Integrate (int variable, TPZVec< STATE > &value) |
Integrates a variable over the element. More... | |
virtual void | GetMemoryIndices (TPZVec< int64_t > &indices) const |
Get the indices of the vector of element memory associated with the integration points. More... | |
virtual void | SetMemoryIndices (TPZVec< int64_t > &indices) |
Set the indices of the vector of element memory associated with the integration points. More... | |
virtual void | PrepareIntPtIndices () |
Prepare the vector of the material withmem with the correct integration point indexes. More... | |
virtual void | ForcePrepareIntPtIndices () |
PrepareIntPtIndices initializes the material damage varibles memory in the proper material class. More... | |
virtual void | SetFreeIntPtIndices () |
Frees the material damage varibles memory in the proper material class. More... | |
virtual void | TransferMultiphysicsElementSolution () |
virtual void | SetMultiphysicsElementSolution () |
virtual void | AddShapeRestraint (TPZOneShapeRestraint restraint) |
Add a shape restraint (meant to fit the pyramid to restraint. More... | |
virtual std::list< TPZOneShapeRestraint > | GetShapeRestraints () const |
Return a list with the shape restraints. More... | |
virtual void | ResetShapeRestraints () |
Return a list with the shape restraints. More... | |
virtual TPZVec< STATE > | IntegrateSolution (int var) const |
Compute the integral of a variable. More... | |
virtual TPZVec< STATE > | IntegrateSolution (const std::string &varname, const std::set< int > &matids) |
Compute the integral of a variable defined by the string if the material id is included in matids. More... | |
virtual void | ComputeSolution (TPZVec< REAL > &qsi, TPZMaterialData &data) |
virtual void | ComputeSolution (TPZVec< REAL > &qsi, TPZSolVec &sol, TPZGradSolVec &dsol, TPZFMatrix< REAL > &axes) |
Computes solution and its derivatives in the local coordinate qsi. More... | |
virtual void | ComputeSolution (TPZVec< REAL > &qsi, TPZVec< REAL > &normal, TPZSolVec &leftsol, TPZGradSolVec &dleftsol, TPZFMatrix< REAL > &leftaxes, TPZSolVec &rightsol, TPZGradSolVec &drightsol, TPZFMatrix< REAL > &rightaxes) |
Computes solution and its derivatives in the local coordinate qsi. This method will function for both volumetric and interface elements. More... | |
virtual void | ComputeSolution (TPZVec< REAL > &qsi, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphix, const TPZFMatrix< REAL > &axes, TPZSolVec &sol, TPZGradSolVec &dsol) |
Computes solution and its derivatives in local coordinate qsi. More... | |
virtual void | BuildConnectList (std::set< int64_t > &indepconnectlist, std::set< int64_t > &depconnectlist) |
Builds the list of all connectivities related to the element including the connects pointed to by dependent connects. More... | |
virtual void | BuildConnectList (TPZStack< int64_t > &connectlist) const |
Builds the list of all connectivities related to the element including the connects pointed to by dependent connects. More... | |
virtual void | BuildConnectList (std::set< int64_t > &connectlist) |
Builds the list of all connectivities related to the element including the connects pointed to by dependent connects. More... | |
virtual int | HasDependency () |
Returns 1 if the element has at least one dependent node. Returns 0 otherwise. More... | |
virtual int | PressureConnectIndex () const |
Returns the index of the pressure connect. More... | |
virtual void | ReduceInternalNodes () |
Domain Decomposition. This method will eliminate the nodes which are internal to the element from the datastructure of the grid After calling this method, the superelement will statically condense the internal equations. More... | |
virtual void | CalcBlockDiagonal (TPZStack< int64_t > &connectlist, TPZBlockDiagonal< STATE > &block) |
Calculates the diagonal block. More... | |
REAL | MaximumRadiusOfEl () |
Will return the maximum distance between the nodes of the reference element. More... | |
REAL | LesserEdgeOfEl () |
Will return the smallest distance between two nodes of the reference element. More... | |
void | Write (TPZStream &buf, int withclassid) const override |
Save the element data to a stream. More... | |
void | Read (TPZStream &buf, void *context) override |
Read the element data from a stream. More... | |
virtual void | InitializeIntegrationRule () |
virtual void | SetIntegrationRule (TPZIntPoints *intrule) |
Method to set a dynamically allocated integration rule. More... | |
virtual void | SetIntegrationRule (int order) |
virtual MElementType | Type () |
Return the type of the element. More... | |
virtual int | IsInterface () |
TPZGeoEl * | Reference () const |
Return a pointer to the corresponding geometric element if such exists, return 0 otherwise. More... | |
void | SetReference (int64_t referenceindex) |
virtual bool | NeedsComputing (const std::set< int > &materialids) |
return true if the element has a variational statement associated with the material ids More... | |
virtual int | NEquations () |
Returns the number of equations of the element. More... | |
int64_t | Index () const |
Returns element index of the mesh fELementVec list. More... | |
void | SetIndex (int64_t index) |
Sets element index of the mesh fELementVec list. More... | |
virtual TPZConnect & | Connect (int i) const |
Returns a pointer to the ith node. More... | |
virtual TPZMaterial * | Material () const |
Identify the material object associated with the element. More... | |
TPZGeoEl * | GetRefElPatch () |
Returns the reference geometric element patch. Look for a geometric element which refers to a computational element and is neighbour of the current element AND is larger than the current element. More... | |
virtual void | LoadSolution () |
Loads the solution within the internal data structure of the element. More... | |
void | SetMesh (TPZCompMesh *mesh) |
Sets the grid of the element. More... | |
TPZCompMesh * | Mesh () const |
Return a pointer to the grid of the element. More... | |
virtual void | PrintSolution (TPZVec< REAL > &point, const char *VarName, std::ostream &out) |
Prints the solution - sol - for the variable "VarName" at point specified in terms of the master element coordinates. More... | |
virtual void | PrintCoordinate (TPZVec< REAL > &point, int CoordinateIndex, std::ostream &out) |
Prints one coordinate index corresponding to the point to the output stream. More... | |
virtual void | PrintTitle (const char *VarName, std::ostream &out) |
Prints the variables names associated with the element material. More... | |
Public Member Functions inherited from TPZSavable | |
TPZSavable () | |
virtual | ~TPZSavable () |
virtual std::list< std::map< std::string, uint64_t > > | VersionHistory () const |
virtual std::pair< std::string, uint64_t > | Version () const |
virtual bool | Compare (TPZSavable *copy, bool override=false) |
Compares the object for identity with the object pointed to, eventually copy the object. More... | |
virtual bool | Compare (TPZSavable *copy, bool override=false) const |
Compares the object for identity with the object pointed to, eventually copy the object. More... | |
Public Member Functions inherited from TPZRegisterClassId | |
template<typename T > | |
TPZRegisterClassId (int(T::*)() const) | |
TPZRegisterClassId ()=default | |
Protected Attributes | |
TPZCompElSide | fLeftElSide |
Element vector the left of the normal a interface. More... | |
TPZCompElSide | fRightElSide |
Element vector the right of the normal a interface. More... | |
TPZManVector< int64_t, 20 > | fConnectIndexes |
indexes of the connects More... | |
TPZManVector< int64_t, 3 > | fLeftElIndices |
indices of the Left Element Vector More... | |
TPZManVector< int64_t, 3 > | fRightElIndices |
indices of the Right Element Vector More... | |
Protected Attributes inherited from TPZCompEl | |
TPZCompMesh * | fMesh |
Computational mesh to which the element belongs. More... | |
int64_t | fIndex |
Element index into mesh element vector. More... | |
TPZIntPoints * | fIntegrationRule |
Integration rule established by the user. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from TPZCompEl | |
static int | StaticClassId () |
static void | SetgOrder (int order) |
Sets the value of the default interpolation order. More... | |
static int | GetgOrder () |
Set the default value of the interpolation order. More... | |
static void | SetOrthogonalFunction (void(*orthogonal)(REAL x, int num, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)) |
Sets the orthogonal function which will be used throughout the program by default this function is the Chebyshev function. More... | |
static void | Chebyshev (REAL x, int num, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi) |
Implements of the orthogonal Chebyshev functions. More... | |
Static Public Member Functions inherited from TPZSavable | |
static std::set< TPZRestoreClassBase * > & | RestoreClassSet () |
This static function guarantees that the gMap object is available when needed. More... | |
static std::map< int, TPZRestore_t > & | ClassIdMap () |
This static function guarantees that the gMap object is available when needed. More... | |
static std::pair< std::string, uint64_t > | NeoPZVersion () |
static void | Register (TPZRestoreClassBase *restore) |
static void | RegisterClassId (int classid, TPZRestore_t fun) |
static TPZSavable * | CreateInstance (const int &classId) |
Computes the contribution over an interface between two discontinuous elements. Computational Element.
Definition at line 21 of file TPZMultiphysicsInterfaceEl.h.
TPZMultiphysicsInterfaceElement::TPZMultiphysicsInterfaceElement | ( | ) |
Default constructor.
Definition at line 34 of file TPZMultiphysicsInterfaceEl.cpp.
Referenced by Clone(), and ClonePatchEl().
TPZMultiphysicsInterfaceElement::TPZMultiphysicsInterfaceElement | ( | TPZCompMesh & | mesh, |
TPZGeoEl * | ref, | ||
int64_t & | index, | ||
TPZCompElSide | left, | ||
TPZCompElSide | right | ||
) |
Constructor.
Definition at line 39 of file TPZMultiphysicsInterfaceEl.cpp.
References CreateIntegrationRule(), DebugStop, TPZCompElSide::Element(), TPZCompMesh::FindMaterial(), fLeftElIndices, fRightElIndices, IncrementElConnected(), TPZGeoEl::IncrementNumInterfaces(), TPZGeoEl::MaterialId(), TPZMultiphysicsElement::NMeshes(), TPZManVector< T, NumExtAlloc >::Resize(), SetLeftRightElement(), and TPZGeoEl::SetReference().
TPZMultiphysicsInterfaceElement::TPZMultiphysicsInterfaceElement | ( | TPZCompMesh & | mesh, |
const TPZMultiphysicsInterfaceElement & | copy | ||
) |
create a copy of the given element
Definition at line 90 of file TPZMultiphysicsInterfaceEl.cpp.
References DebugStop, TPZCompElSide::Element(), TPZCompMesh::ElementVec(), fLeftElSide, fRightElSide, TPZCompEl::Index(), Left(), Right(), SetLeftRightElement(), and TPZCompElSide::Side().
TPZMultiphysicsInterfaceElement::TPZMultiphysicsInterfaceElement | ( | TPZCompMesh & | mesh, |
const TPZMultiphysicsInterfaceElement & | copy, | ||
std::map< int64_t, int64_t > & | gl2lcConMap, | ||
std::map< int64_t, int64_t > & | gl2lcElMap | ||
) |
create a copy of the given element using index mapping
constructor not implemented right
Definition at line 113 of file TPZMultiphysicsInterfaceEl.cpp.
References DebugStop, TPZCompElSide::Element(), TPZCompMesh::ElementVec(), TPZCompEl::Index(), Left(), Right(), SetLeftRightElement(), and TPZCompElSide::Side().
|
virtual |
Default destructor.
Definition at line 143 of file TPZMultiphysicsInterfaceEl.cpp.
References TPZCompEl::Reference(), and TPZGeoEl::ResetReference().
Referenced by ClonePatchEl().
|
inlineoverridevirtual |
adds the connect indexes associated with base shape functions to the set
Implements TPZCompEl.
Definition at line 238 of file TPZMultiphysicsInterfaceEl.h.
References TPZCompEl::BuildCornerConnectList(), CreateGraphicalElement(), dimension, TPZCompElSide::Element(), and Solution().
|
overridevirtual |
Compute the stiffness matrix and load vector of the interface element
Reimplemented from TPZCompEl.
Definition at line 313 of file TPZMultiphysicsInterfaceEl.cpp.
References TPZMultiphysicsElement::AffineTransform(), TPZMultiphysicsElement::ComputeRequiredData(), ComputeRequiredData(), TPZDiscontinuousGalerkin::ContributeInterface(), TPZGeoEl::CreateSideIntegrationRule(), DebugStop, TPZMaterialData::detjac, dimension, TPZCompEl::Dimension(), TPZGeoEl::Dimension(), TPZMultiphysicsElement::Element(), TPZCompElSide::Element(), fabs, fLeftElIndices, fLeftElSide, TPZElementMatrix::fMat, fRightElIndices, fRightElSide, TPZDiscontinuousGalerkin::GetIntegrationOrder(), InitializeElementMatrix(), InitMaterialData(), TPZMaterialData::intLocPtIndex, TPZCompEl::Material(), TPZInterpolationSpace::MaxOrder(), TPZTransform< T >::Multiply(), NConnects(), TPZIntPoints::NPoints(), TPZGeoEl::NSides(), TPZIntPoints::Point(), TPZMultiphysicsElement::PolynomialOrder(), PZError, TPZCompEl::Reference(), TPZCompElSide::Reference(), TPZElementMatrix::Reset(), TPZGeoEl::SideToSideTransform(), TPZGeoElSide::SideTransform3(), TPZVec< T >::size(), and TPZMaterialData::x.
Referenced by Dimension().
void TPZMultiphysicsInterfaceElement::CalcStiff | ( | TPZElementMatrix & | ef | ) |
Compute the load vector of the interface element
Definition at line 400 of file TPZMultiphysicsInterfaceEl.cpp.
References TPZMultiphysicsElement::AffineTransform(), TPZMultiphysicsElement::ComputeRequiredData(), ComputeRequiredData(), TPZDiscontinuousGalerkin::ContributeInterface(), TPZGeoEl::CreateSideIntegrationRule(), DebugStop, TPZMaterialData::detjac, dimension, TPZCompEl::Dimension(), TPZGeoEl::Dimension(), TPZMultiphysicsElement::Element(), TPZCompElSide::Element(), fabs, fLeftElIndices, fLeftElSide, TPZElementMatrix::fMat, TPZMaterialData::fNeedsHSize, fRightElIndices, fRightElSide, TPZDiscontinuousGalerkin::GetIntegrationOrder(), InitializeElementMatrix(), InitMaterialData(), TPZMaterialData::intLocPtIndex, TPZCompEl::Material(), TPZInterpolationSpace::MaxOrder(), TPZTransform< T >::Multiply(), NConnects(), TPZIntPoints::NPoints(), TPZGeoEl::NSides(), TPZIntPoints::Point(), TPZMultiphysicsElement::PolynomialOrder(), PZError, TPZCompEl::Reference(), TPZCompElSide::Reference(), TPZElementMatrix::Reset(), TPZGeoEl::SideToSideTransform(), TPZGeoElSide::SideTransform3(), TPZVec< T >::size(), and TPZMaterialData::x.
|
overridevirtual |
Define the class id associated with the class.
This id has to be unique for all classes A non unique id is flagged at the startup of the program
Reimplemented from TPZCompEl.
Definition at line 919 of file TPZMultiphysicsInterfaceEl.cpp.
References TPZCompEl::ClassId(), and Hash().
Referenced by NumberOfCompElementsInsideThisCompEl().
|
inlineoverridevirtual |
Method for creating a copy of the element.
Implements TPZCompEl.
Definition at line 56 of file TPZMultiphysicsInterfaceEl.h.
References TPZMultiphysicsInterfaceElement().
|
inlineoverridevirtual |
Method for creating a copy of the element in a patch mesh.
mesh | Patch clone mesh |
gl2lcConMap | map the connects indexes from global element (original) to the local copy. |
gl2lcElMap | map the computational elements Otherwise of the previous clone function, this method don't copy entire mesh. Therefore it needs to map the connect index from the both meshes - original and patch |
Implements TPZCompEl.
Definition at line 72 of file TPZMultiphysicsInterfaceEl.h.
References ComputeSideTransform(), GetLeftRightElement(), IncrementElConnected(), MapQsi(), SetLeftRightElement(), SetLeftRightElementIndices(), TPZMultiphysicsInterfaceElement(), and ~TPZMultiphysicsInterfaceElement().
void TPZMultiphysicsInterfaceElement::ComputeCenterNormal | ( | TPZVec< REAL > & | normal | ) | const |
Definition at line 654 of file TPZMultiphysicsInterfaceEl.cpp.
References TPZGeoEl::CenterPoint(), TPZGeoEl::Dimension(), TPZCompElSide::Element(), fLeftElSide, fRightElSide, TPZGeoElSide::Normal(), TPZGeoEl::NSides(), and TPZCompEl::Reference().
Referenced by LeftElement(), and Print().
|
overridevirtual |
Reimplemented from TPZCompEl.
Definition at line 492 of file TPZMultiphysicsInterfaceEl.cpp.
References TPZMultiphysicsElement::ComputeIntegrationOrder(), TPZCompElSide::Element(), fLeftElSide, fRightElSide, and MAX.
Referenced by Dimension().
|
virtual |
Compute and fill data with requested attributes for each of the compels in fElementVec.
Definition at line 539 of file TPZMultiphysicsInterfaceEl.cpp.
References DebugStop.
Referenced by CalcStiff(), Dimension(), and LeftElement().
|
virtual |
Compute the data needed to compute the stiffness matrix at the integration point.
Definition at line 758 of file TPZMultiphysicsInterfaceEl.cpp.
References TPZMaterialData::axes, TPZMaterialData::detjac, Dimension(), TPZCompElSide::Element(), TPZGeoEl::ElementRadius(), TPZMaterial::FillDataRequirementsInterface(), fLeftElSide, TPZMaterialData::fNeedsHSize, TPZMaterialData::fNeedsNormal, fRightElSide, TPZMaterialData::HSize, TPZMaterialData::intGlobPtIndex, TPZMaterialData::jacinv, TPZMaterialData::jacobian, TPZGeoEl::Jacobian(), TPZCompEl::Material(), TPZMaterialData::normal, TPZGeoEl::NSides(), and TPZCompEl::Reference().
void TPZMultiphysicsInterfaceElement::ComputeRequiredData | ( | TPZVec< REAL > & | point, |
TPZVec< TPZTransform<> > & | trvec, | ||
TPZMultiphysicsElement * | Neighbour, | ||
TPZVec< TPZMaterialData > & | data | ||
) |
Compute the required data from the neighbouring elements.
void TPZMultiphysicsInterfaceElement::ComputeSideTransform | ( | TPZManVector< TPZCompElSide > & | Neighbor, |
TPZManVector< TPZTransform<> > & | transf | ||
) |
Compute the transform of a paramenter point in the multiphysic interface element to a parameter point in the neighbor super element.
Neighbor | [in] may be this->LeftElementSide() or this->RightElementSide() |
transf | [out] vector of Transforms |
Definition at line 149 of file TPZMultiphysicsInterfaceEl.cpp.
References DebugStop, TPZGeoElSide::Dimension(), TPZGeoElSide::NeighbourExists(), TPZGeoEl::NSides(), TPZCompEl::Reference(), TPZGeoElSide::SideTransform3(), and TPZVec< T >::size().
Referenced by ClonePatchEl(), LeftElement(), and Solution().
void TPZMultiphysicsInterfaceElement::ComputeSideTransform | ( | TPZCompElSide & | Neighbor, |
TPZTransform<> & | transf | ||
) |
Definition at line 906 of file TPZMultiphysicsInterfaceEl.cpp.
References Dimension(), TPZCompElSide::Element(), TPZTransform< T >::Multiply(), TPZGeoEl::NSides(), TPZCompEl::Reference(), TPZCompElSide::Side(), and TPZGeoElSide::SideTransform3().
|
overridevirtual |
Returns the index of the ith connectivity of the element.
i | connectivity index who want knows |
Implements TPZCompEl.
Definition at line 300 of file TPZMultiphysicsInterfaceEl.cpp.
References DebugStop, fConnectIndexes, and TPZVec< T >::size().
Referenced by IncrementElConnected(), InitializeElementMatrix(), and SetConnectIndex().
|
overridevirtual |
Creates corresponding graphical element(s) if the dimension matches graphical elements are used to generate output files.
graphmesh | graphical mesh where the element will be created |
dimension | target dimension of the graphical element |
Reimplemented from TPZCompEl.
Definition at line 795 of file TPZMultiphysicsInterfaceEl.cpp.
References dimension, TPZGeoEl::Dimension(), TPZMaterial::Id(), TPZCompEl::Material(), TPZGraphMesh::Material_Is_PostProcessed(), TPZGeoEl::NSides(), TPZCompEl::Reference(), TPZGraphMesh::ScalarNames(), TPZVec< T >::size(), TPZMaterial::VariableIndex(), and TPZGraphMesh::VecNames().
Referenced by BuildCornerConnectList().
void TPZMultiphysicsInterfaceElement::CreateIntegrationRule | ( | ) |
Return max integration rule of this interface element
Definition at line 506 of file TPZMultiphysicsInterfaceEl.cpp.
References TPZGeoEl::CreateSideIntegrationRule(), DebugStop, TPZCompElSide::Element(), TPZCompEl::fIntegrationRule, fLeftElSide, fRightElSide, TPZDiscontinuousGalerkin::GetIntegrationOrder(), TPZCompEl::Material(), TPZGeoEl::NSides(), TPZMultiphysicsElement::PolynomialOrder(), PZError, and TPZCompEl::Reference().
Referenced by Dimension(), and TPZMultiphysicsInterfaceElement().
|
inlineoverridevirtual |
Dimension of the element.
Implements TPZCompEl.
Definition at line 136 of file TPZMultiphysicsInterfaceEl.h.
References CalcStiff(), ComputeIntegrationOrder(), ComputeRequiredData(), CreateIntegrationRule(), TPZGeoEl::Dimension(), GetIntegrationRule(), InitializeElementMatrix(), and TPZCompEl::Reference().
Referenced by ComputeRequiredData(), and ComputeSideTransform().
|
inlineoverridevirtual |
Performs an error estimate on the elemen.
fp | function pointer which computes the exact solution |
errors | [out] the L2 norm of the error of the solution |
flux | [in] value of the interpolated flux values |
Reimplemented from TPZCompEl.
Definition at line 281 of file TPZMultiphysicsInterfaceEl.h.
|
overridevirtual |
Return max integration rule of this interface element
Reimplemented from TPZCompEl.
Definition at line 483 of file TPZMultiphysicsInterfaceEl.cpp.
References DebugStop, and TPZCompEl::fIntegrationRule.
Referenced by Dimension().
void TPZMultiphysicsInterfaceElement::GetLeftRightElement | ( | TPZCompElSide & | leftel, |
TPZCompElSide & | rightel | ||
) |
Get left and right elements
Definition at line 284 of file TPZMultiphysicsInterfaceEl.cpp.
References fLeftElSide, and fRightElSide.
Referenced by ClonePatchEl(), and Solution().
void TPZMultiphysicsInterfaceElement::IncrementElConnected | ( | ) |
Informs the connect that this element is connected to it.
Definition at line 81 of file TPZMultiphysicsInterfaceEl.cpp.
References ConnectIndex(), TPZCompMesh::ConnectVec(), TPZCompEl::fMesh, and NConnects().
Referenced by ClonePatchEl(), and TPZMultiphysicsInterfaceElement().
void TPZMultiphysicsInterfaceElement::InitializeElementMatrix | ( | TPZElementMatrix & | ek, |
TPZElementMatrix & | ef | ||
) |
Initialize the structure of the stiffness matrix.
Definition at line 544 of file TPZMultiphysicsInterfaceEl.cpp.
References TPZCompEl::Connect(), ConnectIndex(), DebugStop, TPZElementMatrix::EF, TPZElementMatrix::EK, TPZCompElSide::Element(), TPZElementMatrix::fBlock, TPZElementMatrix::fConnect, fLeftElSide, TPZElementMatrix::fMat, TPZElementMatrix::fMesh, fRightElSide, TPZElementMatrix::fType, TPZCompEl::Material(), TPZCompEl::Mesh(), NConnects(), TPZConnect::NDof(), TPZConnect::NShape(), TPZConnect::NState(), TPZMaterial::NStateVariables(), TPZMaterial::NumLoadCases(), TPZFMatrix< TVar >::Redim(), TPZManVector< T, NumExtAlloc >::Resize(), TPZBlock< TVar >::Set(), and TPZBlock< TVar >::SetNBlocks().
Referenced by CalcStiff(), and Dimension().
void TPZMultiphysicsInterfaceElement::InitializeElementMatrix | ( | TPZElementMatrix & | ef | ) |
Initialize the structure of the stiffness matrix.
Definition at line 602 of file TPZMultiphysicsInterfaceEl.cpp.
References TPZCompEl::Connect(), ConnectIndex(), DebugStop, TPZElementMatrix::EF, TPZCompElSide::Element(), TPZElementMatrix::fBlock, TPZElementMatrix::fConnect, fLeftElSide, TPZElementMatrix::fMat, TPZElementMatrix::fMesh, fRightElSide, TPZElementMatrix::fType, TPZCompEl::Material(), TPZCompEl::Mesh(), NConnects(), TPZConnect::NDof(), TPZConnect::NShape(), TPZConnect::NState(), TPZMaterial::NStateVariables(), TPZMaterial::NumLoadCases(), TPZFMatrix< TVar >::Redim(), TPZManVector< T, NumExtAlloc >::Resize(), TPZBlock< TVar >::Set(), and TPZBlock< TVar >::SetNBlocks().
void TPZMultiphysicsInterfaceElement::InitMaterialData | ( | TPZMaterialData & | center_data, |
TPZVec< TPZMaterialData > & | data_left, | ||
TPZVec< TPZMaterialData > & | data_right | ||
) |
Initialize the material data structures.
Initialize the material data for the neighbouring element.
Initialize the material data structures
Definition at line 708 of file TPZMultiphysicsInterfaceEl.cpp.
References TPZCompElSide::Element(), TPZMaterial::FillDataRequirementsInterface(), fLeftElIndices, fLeftElSide, fRightElIndices, fRightElSide, TPZMultiphysicsElement::InitMaterialData(), TPZCompEl::Material(), TPZMultiphysicsElement::NMeshes(), TPZVec< T >::resize(), and TPZVec< T >::size().
Referenced by CalcStiff(), LeftElement(), and Solution().
void TPZMultiphysicsInterfaceElement::InitMaterialData | ( | TPZMaterialData & | data | ) |
initialize the material data for the geometric data
Definition at line 735 of file TPZMultiphysicsInterfaceEl.cpp.
References TPZMaterialData::axes, TPZGeoEl::CenterPoint(), TPZGeoEl::Dimension(), TPZCompElSide::Element(), TPZMaterial::FillDataRequirements(), fLeftElSide, TPZMaterialData::fNeedsNormal, fRightElSide, TPZMaterialData::jacinv, TPZMaterialData::jacobian, TPZCompEl::Material(), TPZMaterialData::normal, TPZGeoElSide::Normal(), TPZGeoEl::NSides(), TPZFMatrix< TVar >::Redim(), TPZCompEl::Reference(), TPZManVector< T, NumExtAlloc >::Resize(), and TPZMaterialData::x.
|
inline |
access function to the left element
Definition at line 174 of file TPZMultiphysicsInterfaceEl.h.
References fLeftElSide.
Referenced by TPZMultiphysicsElement::ExistsInterface(), SetLeftRightElementIndices(), and TPZMultiphysicsInterfaceElement().
|
inline |
Returns the left element from the element interface.
Definition at line 185 of file TPZMultiphysicsInterfaceEl.h.
References ComputeCenterNormal(), ComputeRequiredData(), ComputeSideTransform(), TPZCompElSide::Element(), InitMaterialData(), and Print().
Referenced by TPZMHMixedHybridMeshControl::GroupElements(), Print(), and TPZSubCompMesh::TransferElementFrom().
void TPZMultiphysicsInterfaceElement::MapQsi | ( | TPZManVector< TPZCompElSide > & | Neighbor, |
TPZVec< REAL > & | qsi, | ||
TPZVec< REAL > & | NeighIntPoint | ||
) |
Maps qsi coordinate at this master element to qsi coordinate at neighbor master element.
Neighbor | [in] may be this->LeftElementSide() or this->RightElementSide() |
qsi | [in] is the point at this element master |
NeighIntPoint | [out] is the point at neighbor element master. X[qsi] is equal to X[NeighIntPoint] |
Referenced by ClonePatchEl().
|
overridevirtual |
Returns the number of nodes of the element.
Implements TPZCompEl.
Definition at line 291 of file TPZMultiphysicsInterfaceEl.cpp.
References fConnectIndexes, and TPZVec< T >::size().
Referenced by CalcStiff(), IncrementElConnected(), InitializeElementMatrix(), SetConnectIndex(), and Solution().
|
inlinevirtual |
Definition at line 219 of file TPZMultiphysicsInterfaceEl.h.
References TPZCompElSide::Element(), and TPZMultiphysicsElement::NMeshes().
|
inlineoverridevirtual |
Return the size of the elementvec in multiphysics, if it is not multiphysics, just return 1.
Reimplemented from TPZCompEl.
Definition at line 259 of file TPZMultiphysicsInterfaceEl.h.
References ClassId(), TPZCompElSide::Element(), and TPZMultiphysicsElement::NMeshes().
|
overridevirtual |
Prints element data.
out | Indicates the device where the data will be printed |
Reimplemented from TPZCompEl.
Definition at line 665 of file TPZMultiphysicsInterfaceEl.cpp.
References ComputeCenterNormal(), TPZGeoEl::Dimension(), TPZMaterial::FillDataRequirements(), TPZMaterialData::fNeedsNormal, TPZGeoEl::Id(), TPZCompEl::Index(), TPZGeoEl::Index(), LeftElement(), TPZCompEl::Material(), TPZGeoEl::MaterialId(), TPZCompEl::Print(), TPZCompEl::Reference(), and RightElement().
Referenced by LeftElement().
|
inline |
Access function to the right element.
Definition at line 214 of file TPZMultiphysicsInterfaceEl.h.
References fRightElSide.
Referenced by TPZMultiphysicsElement::ExistsInterface(), SetLeftRightElementIndices(), and TPZMultiphysicsInterfaceElement().
|
inline |
Returns the right element from the element interface.
Definition at line 180 of file TPZMultiphysicsInterfaceEl.h.
References TPZCompElSide::Element().
Referenced by TPZMHMixedHybridMeshControl::GroupElements(), Print(), and TPZSubCompMesh::TransferElementFrom().
|
inlineoverridevirtual |
Set the index i to node inode.
inode | node to set index |
index | index to be seted |
Implements TPZCompEl.
Definition at line 120 of file TPZMultiphysicsInterfaceEl.h.
References ConnectIndex(), and NConnects().
void TPZMultiphysicsInterfaceElement::SetLeftRightElement | ( | const TPZCompElSide & | leftel, |
const TPZCompElSide & | rightel | ||
) |
Add elements to the list of left and right elements
Definition at line 170 of file TPZMultiphysicsInterfaceEl.cpp.
References fLeftElIndices, fLeftElSide, fRightElIndices, fRightElSide, and SetLeftRightElementIndices().
Referenced by ClonePatchEl(), and TPZMultiphysicsInterfaceElement().
void TPZMultiphysicsInterfaceElement::SetLeftRightElementIndices | ( | const TPZVec< int64_t > & | leftindices, |
const TPZVec< int64_t > & | rightindices | ||
) |
Add elements to the list of left and right indices given related elements
Set indices to the list of left and right elements
Considering active elements
Definition at line 180 of file TPZMultiphysicsInterfaceEl.cpp.
References TPZCompEl::ConnectIndex(), DebugStop, TPZMultiphysicsElement::Element(), TPZCompElSide::Element(), fConnectIndexes, fLeftElIndices, fLeftElSide, fRightElIndices, fRightElSide, TPZMultiphysicsElement::IsActiveApproxSpaces(), Left(), TPZCompEl::NConnects(), TPZMultiphysicsElement::NMeshes(), TPZManVector< T, NumExtAlloc >::Resize(), Right(), and TPZVec< T >::size().
Referenced by ClonePatchEl(), and SetLeftRightElement().
|
overridevirtual |
Calculates the solution - sol - for the variable var at point qsi, where qsi is expressed in terms of the master element coordinates.
qsi | master element coordinate |
var | variable name |
sol | vetor for the solution |
Reimplemented from TPZCompEl.
Definition at line 857 of file TPZMultiphysicsInterfaceEl.cpp.
References TPZMultiphysicsElement::AffineTransform(), TPZTransform< T >::Apply(), TPZMultiphysicsElement::ComputeRequiredData(), ComputeSideTransform(), TPZCompElSide::Element(), fLeftElIndices, fRightElIndices, GetLeftRightElement(), InitMaterialData(), TPZCompEl::Material(), NConnects(), TPZVec< T >::Resize(), TPZVec< T >::resize(), TPZVec< T >::size(), TPZMaterial::Solution(), and TPZCompEl::Solution().
Referenced by BuildCornerConnectList().
|
protected |
indexes of the connects
Definition at line 32 of file TPZMultiphysicsInterfaceEl.h.
Referenced by ConnectIndex(), NConnects(), and SetLeftRightElementIndices().
|
protected |
indices of the Left Element Vector
Definition at line 35 of file TPZMultiphysicsInterfaceEl.h.
Referenced by CalcStiff(), InitMaterialData(), SetLeftRightElement(), SetLeftRightElementIndices(), Solution(), and TPZMultiphysicsInterfaceElement().
|
protected |
Element vector the left of the normal a interface.
Definition at line 26 of file TPZMultiphysicsInterfaceEl.h.
Referenced by CalcStiff(), ComputeCenterNormal(), ComputeIntegrationOrder(), ComputeRequiredData(), CreateIntegrationRule(), GetLeftRightElement(), InitializeElementMatrix(), InitMaterialData(), Left(), SetLeftRightElement(), SetLeftRightElementIndices(), and TPZMultiphysicsInterfaceElement().
|
protected |
indices of the Right Element Vector
Definition at line 38 of file TPZMultiphysicsInterfaceEl.h.
Referenced by CalcStiff(), InitMaterialData(), SetLeftRightElement(), SetLeftRightElementIndices(), Solution(), and TPZMultiphysicsInterfaceElement().
|
protected |
Element vector the right of the normal a interface.
Definition at line 29 of file TPZMultiphysicsInterfaceEl.h.
Referenced by CalcStiff(), ComputeCenterNormal(), ComputeIntegrationOrder(), ComputeRequiredData(), CreateIntegrationRule(), GetLeftRightElement(), InitializeElementMatrix(), InitMaterialData(), Right(), SetLeftRightElement(), SetLeftRightElementIndices(), and TPZMultiphysicsInterfaceElement().