NeoPZ
|
#include <hdiv3dpaper201504.h>
Public Types | |
enum | ApproximationSpace { EH1, EHDiv, EHDivStar, EHDivStarStar } |
enum | Eltype { ECub, EPrism, ETetra } |
Public Member Functions | |
Hdiv3dPaper201504 () | |
~Hdiv3dPaper201504 () | |
void | Run (ApproximationSpace problem, Eltype element, TPZVec< int > POrderBeginAndEnd, TPZVec< int > ndivinterval, TPZFMatrix< REAL > &errors) |
void | PrintErrors (ApproximationSpace problem, Eltype element, TPZVec< int > POrderBeginAndEnd, TPZVec< int > ndivinterval, TPZVec< REAL > &errors, std::ostream &output) |
Private Member Functions | |
TPZGeoMesh * | GMeshWithPrism (int ndiv) |
TPZGeoMesh * | CreateOneCuboWithTetraedrons (int64_t nelem) |
void | GenerateNodes (TPZGeoMesh *gmesh, int64_t nelem) |
TPZGeoMesh * | CreateOneCubo (int nref) |
TPZGeoMesh * | CreateOneQuadraticCube (int nref) |
TPZCompMesh * | CMeshH1 (TPZGeoMesh *gmesh, int pOrder, int dim) |
TPZCompMesh * | CMeshFlux (TPZGeoMesh *gmesh, int pOrder, int dim) |
TPZCompMesh * | CMeshPressure (TPZGeoMesh *gmesh, int pOrder, int dim) |
TPZCompMesh * | CMeshMixed (TPZGeoMesh *gmesh, TPZVec< TPZCompMesh *> meshvec) |
void | ErrorH1 (TPZCompMesh *l2mesh, int p, int ndiv, int pos, TPZFMatrix< REAL > &errors) |
void | ErrorH1 (TPZCompMesh *l2mesh, int p, int ndiv, std::ostream &out, int DoFT, int DofCond) |
void | ErrorPrimalDual (TPZCompMesh *l2mesh, TPZCompMesh *hdivmesh, int p, int ndiv, int pos, TPZFMatrix< REAL > &errors) |
void | ErrorPrimalDual (TPZCompMesh *l2mesh, TPZCompMesh *hdivmesh, int p, int ndiv, std::ostream &out, int DoFT, int DofCond) |
void | ChangeExternalOrderConnects (TPZCompMesh *mesh) |
void | SolveSyst (TPZAnalysis &an, TPZCompMesh *fCmesh) |
bool | MyDoubleComparer (REAL a, REAL b) |
void | setTetraTrue () |
void | setPrismaTrue () |
void | setH1True () |
bool | getIsH1 (bool &EH1) |
Static Private Member Functions | |
static void | SolExata (const TPZVec< REAL > &pt, TPZVec< STATE > &solp, TPZFMatrix< STATE > &flux) |
static void | SolExataH1 (const TPZVec< REAL > &pt, TPZVec< STATE > &solp, TPZFMatrix< STATE > &flux) |
static void | Forcing (const TPZVec< REAL > &pt, TPZVec< STATE > &ff) |
static void | ForcingH1 (const TPZVec< REAL > &pt, TPZVec< STATE > &ff, TPZFMatrix< STATE > &flux) |
static void | ForcingBC0D (const TPZVec< REAL > &pt, TPZVec< STATE > &disp) |
static void | ForcingBC1D (const TPZVec< REAL > &pt, TPZVec< STATE > &disp) |
static void | ForcingBC2D (const TPZVec< REAL > &pt, TPZVec< STATE > &disp) |
static void | ForcingBC3D (const TPZVec< REAL > &pt, TPZVec< STATE > &disp) |
static void | ForcingBC4D (const TPZVec< REAL > &pt, TPZVec< STATE > &disp) |
static void | ForcingBC5D (const TPZVec< REAL > &pt, TPZVec< STATE > &disp) |
static void | ForcingBC0N (const TPZVec< REAL > &pt, TPZVec< STATE > &disp) |
static void | ForcingBC1N (const TPZVec< REAL > &pt, TPZVec< STATE > &disp) |
static void | ForcingBC2N (const TPZVec< REAL > &pt, TPZVec< STATE > &disp) |
static void | ForcingBC3N (const TPZVec< REAL > &pt, TPZVec< STATE > &disp) |
static void | ForcingBC4N (const TPZVec< REAL > &pt, TPZVec< STATE > &disp) |
static void | ForcingBC5N (const TPZVec< REAL > &pt, TPZVec< STATE > &disp) |
Private Attributes | |
int | fDim |
int | fmatId |
int | fdirichlet |
int | fneumann |
int | fbc0 |
int | fbc1 |
int | fbc2 |
int | fbc3 |
int | fbc4 |
int | fbc5 |
int | fmatskeleton |
bool | fisH1 |
bool | ftetra |
bool | fprisma |
bool | isgeoblend |
TPZFMatrix< int > | tetraedra_2 |
Classe que define o problema do laplaceano no cubo
Definition at line 105 of file hdiv3dpaper201504.h.
Enumerator | |
---|---|
EH1 | |
EHDiv | |
EHDivStar | |
EHDivStarStar |
Definition at line 135 of file hdiv3dpaper201504.h.
Enumerator | |
---|---|
ECub | |
EPrism | |
ETetra |
Definition at line 137 of file hdiv3dpaper201504.h.
Hdiv3dPaper201504::Hdiv3dPaper201504 | ( | ) |
Definition at line 12 of file hdiv3dpaper201504.cpp.
References fbc0, fbc1, fbc2, fbc3, fbc4, fbc5, fDim, fdirichlet, fisH1, fmatId, fmatskeleton, fneumann, fprisma, ftetra, TPZFMatrix< TVar >::Resize(), and tetraedra_2.
Hdiv3dPaper201504::~Hdiv3dPaper201504 | ( | ) |
Definition at line 70 of file hdiv3dpaper201504.cpp.
|
private |
Definition at line 1687 of file hdiv3dpaper201504.cpp.
References TPZCompMesh::Block(), TPZCompMesh::CleanUpUnconnectedNodes(), co, TPZCompEl::Connect(), TPZCompEl::ConnectIndex(), TPZCompMesh::Dimension(), TPZCompEl::Dimension(), TPZCompMesh::ElementVec(), TPZCompMesh::ExpandSolution(), TPZCompEl::NConnects(), TPZConnect::NShape(), TPZConnect::Order(), TPZConnect::SequenceNumber(), TPZBlock< TVar >::Set(), TPZConnect::SetNShape(), and TPZConnect::SetOrder().
Referenced by PrintErrors(), and Run().
|
private |
criar materiais
Inserir condicao de contorno
Definition at line 1187 of file hdiv3dpaper201504.cpp.
References TPZCompMesh::AutoBuild(), TPZMaterial::CreateBC(), fbc0, fbc1, fbc2, fbc3, fbc4, fbc5, fDim, fdirichlet, fmatId, fmatskeleton, TPZCompMesh::InsertMaterialObject(), TPZMatMixedPoisson3D::NStateVariables(), TPZCompMesh::SetAllCreateFunctionsHDiv(), TPZCompMesh::SetDefaultOrder(), and TPZCompMesh::SetDimModel().
Referenced by PrintErrors(), and Run().
|
private |
criar materiais
Inserir condicao de contorno
Definition at line 1126 of file hdiv3dpaper201504.cpp.
References TPZCompMesh::AutoBuild(), TPZMaterial::CreateBC(), fbc0, fbc1, fbc2, fbc3, fbc4, fbc5, fDim, fdirichlet, fmatId, ForcingH1(), TPZCompMesh::InsertMaterialObject(), TPZMatPoisson3d::NStateVariables(), TPZCompMesh::SetAllCreateFunctionsContinuous(), TPZCompMesh::SetDefaultOrder(), TPZCompMesh::SetDimModel(), TPZMaterial::SetForcingFunction(), TPZMaterial::SetForcingFunctionExact(), TPZDummyFunction< TVar >::SetPolynomialOrder(), and SolExataH1().
Referenced by PrintErrors(), and Run().
|
private |
Definition at line 1323 of file hdiv3dpaper201504.cpp.
References TPZBuildMultiphysicsMesh::AddConnects(), TPZElementGroup::AddElement(), TPZBuildMultiphysicsMesh::AddElements(), TPZBuildMultiphysicsMesh::AddWrap(), TPZCompMesh::AdjustBoundaryElements(), TPZCompMesh::AutoBuild(), TPZCompMesh::CleanUpUnconnectedNodes(), TPZCompMesh::ComputeNodElCon(), TPZCompEl::Connect(), TPZMaterial::CreateBC(), DebugStop, TPZCompEl::Dimension(), TPZGeoMesh::Dimension(), TPZGeoElSide::Element(), TPZCompMesh::Element(), TPZCompMesh::ElementVec(), TPZCompMesh::ExpandSolution(), fbc0, fbc1, fbc2, fbc3, fbc4, fbc5, fdirichlet, fmatId, Forcing(), ForcingBC0D(), ForcingBC1D(), ForcingBC2D(), ForcingBC3D(), ForcingBC4D(), ForcingBC5D(), TPZConnect::IncrementElConnected(), TPZCompEl::Index(), TPZCompMesh::InsertMaterialObject(), TPZConnect::LagrangeMultiplier(), TPZCompMesh::LoadReferences(), TPZGeoEl::MaterialId(), TPZElementGroup::NConnects(), TPZGeoElSide::Neighbour(), TPZVec< T >::NElements(), TPZChunkVector< T, EXP >::NElements(), TPZGeoEl::NSides(), TPZStack< T, NumExtAlloc >::Push(), TPZCompEl::Reference(), TPZCompMesh::Reference(), TPZGeoEl::Reference(), TPZGeoMesh::ResetReference(), TPZCompMesh::SetAllCreateFunctionsMultiphysicElem(), TPZCompMesh::SetDimModel(), TPZMaterial::SetForcingFunction(), TPZMaterial::SetForcingFunctionExact(), TPZMatMixedPoisson3D::SetPermeabilityTensor(), TPZDummyFunction< TVar >::SetPolynomialOrder(), TPZVec< T >::size(), SolExata(), and TPZBuildMultiphysicsMesh::TransferFromMeshes().
Referenced by PrintErrors(), and Run().
|
private |
criar materiais
Inserir condicao de contorno
Definition at line 1246 of file hdiv3dpaper201504.cpp.
References TPZCompMesh::ApproxSpace(), TPZCompMesh::AutoBuild(), TPZCompMesh::ConnectVec(), TPZCreateApproximationSpace::CreateDisconnectedElements(), DebugStop, TPZCompMesh::Dimension(), TPZGeoEl::Dimension(), TPZCompMesh::ElementVec(), fDim, fmatId, TPZCompMesh::InsertMaterialObject(), TPZCompMesh::NConnects(), TPZCompMesh::NElements(), TPZMatMixedPoisson3D::NStateVariables(), TPZCompEl::Reference(), TPZCompMesh::SetAllCreateFunctionsContinuous(), TPZCompMesh::SetAllCreateFunctionsDiscontinuous(), TPZCompElDisc::SetCenterPoint(), TPZCompElDisc::SetConstC(), TPZCompMesh::SetDefaultOrder(), TPZCompMesh::SetDimModel(), TPZConnect::SetLagrangeMultiplier(), and TPZCompElDisc::SetTrueUseQsiEta().
Referenced by PrintErrors(), and Run().
|
private |
gmesh para aqui
Definition at line 804 of file hdiv3dpaper201504.cpp.
References TPZGeoMesh::BuildConnectivity(), TPZGeoEl::Divide(), TPZGeoMesh::ElementVec(), fbc0, fbc1, fbc2, fbc3, fbc4, fbc5, fmatId, TPZGeoEl::HasSubElement(), TPZGeoMesh::NElements(), TPZGeoMesh::NodeVec(), TPZVTKGeoMesh::PrintGMeshVTK(), TPZAdmChunkVector< T, EXP >::Resize(), and TPZGeoMesh::SetDimension().
Referenced by PrintErrors(), and Run().
|
private |
Definition at line 603 of file hdiv3dpaper201504.cpp.
References TPZGeoMesh::BuildConnectivity(), TPZVec< T >::clear(), TPZGeoMesh::CreateGeoElement(), TPZGeoMesh::ElementVec(), ETetraedro, fbc0, fbc1, fbc2, fbc3, fbc4, fbc5, fmatId, GenerateNodes(), MyDoubleComparer(), TPZGeoMesh::NElements(), TPZVec< T >::NElements(), TPZGeoEl::NodeIndex(), TPZGeoMesh::NodeVec(), TPZVec< T >::Resize(), tetraedra_2, and TPZGeoEl::WhichSide().
Referenced by PrintErrors(), and Run().
|
private |
|
private |
Definition at line 1535 of file hdiv3dpaper201504.cpp.
References TPZCompMesh::Dimension(), TPZGeoEl::Dimension(), TPZCompMesh::ElementVec(), TPZCompEl::EvaluateError(), TPZVec< T >::Fill(), TPZCompMesh::NElements(), TPZFMatrix< TVar >::PutVal(), TPZCompEl::Reference(), TPZVec< T >::resize(), TPZVec< T >::size(), SolExataH1(), and sqrt.
Referenced by PrintErrors(), and Run().
|
private |
Definition at line 1570 of file hdiv3dpaper201504.cpp.
References TPZCompMesh::Dimension(), TPZGeoEl::Dimension(), TPZCompMesh::ElementVec(), TPZCompEl::EvaluateError(), TPZVec< T >::Fill(), TPZCompMesh::NElements(), TPZCompEl::Reference(), TPZVec< T >::resize(), TPZVec< T >::size(), SolExataH1(), and sqrt.
|
private |
Definition at line 1602 of file hdiv3dpaper201504.cpp.
References TPZCompMesh::Dimension(), TPZGeoEl::Dimension(), TPZCompMesh::ElementVec(), TPZCompEl::EvaluateError(), TPZVec< T >::Fill(), TPZCompMesh::NElements(), TPZFMatrix< TVar >::PutVal(), TPZCompEl::Reference(), TPZVec< T >::resize(), TPZVec< T >::size(), SolExata(), and sqrt.
Referenced by PrintErrors(), and Run().
|
private |
Definition at line 1647 of file hdiv3dpaper201504.cpp.
References TPZCompMesh::Dimension(), TPZGeoEl::Dimension(), TPZCompMesh::ElementVec(), TPZCompEl::EvaluateError(), TPZVec< T >::Fill(), TPZCompMesh::NElements(), TPZCompEl::Reference(), TPZVec< T >::resize(), TPZVec< T >::size(), SolExata(), and sqrt.
|
staticprivate |
Definition at line 1089 of file hdiv3dpaper201504.cpp.
Referenced by CMeshMixed().
|
staticprivate |
|
staticprivate |
Definition at line 1095 of file hdiv3dpaper201504.cpp.
Referenced by CMeshMixed().
|
staticprivate |
|
staticprivate |
Definition at line 1101 of file hdiv3dpaper201504.cpp.
Referenced by CMeshMixed().
|
staticprivate |
|
staticprivate |
Definition at line 1107 of file hdiv3dpaper201504.cpp.
Referenced by CMeshMixed().
|
staticprivate |
|
staticprivate |
Definition at line 1113 of file hdiv3dpaper201504.cpp.
Referenced by CMeshMixed().
|
staticprivate |
|
staticprivate |
Definition at line 1120 of file hdiv3dpaper201504.cpp.
Referenced by CMeshMixed().
|
staticprivate |
|
staticprivate |
|
private |
Definition at line 787 of file hdiv3dpaper201504.cpp.
References TPZGeoMesh::NodeVec(), and TPZAdmChunkVector< T, EXP >::Resize().
Referenced by CreateOneCuboWithTetraedrons().
|
inlineprivate |
Definition at line 221 of file hdiv3dpaper201504.h.
|
private |
gmesh para aqui
Definition at line 420 of file hdiv3dpaper201504.cpp.
References TPZGeoMesh::BuildConnectivity(), TPZGeoEl::Divide(), TPZGeoMesh::ElementVec(), fbc0, fbc1, fbc2, fbc3, fbc4, fbc5, fmatId, TPZGeoEl::HasSubElement(), TPZGeoMesh::NElements(), TPZGeoMesh::NodeVec(), TPZAdmChunkVector< T, EXP >::Resize(), TPZGeoMesh::SetDimension(), and TPZGeoMesh::SetMaxNodeId().
Referenced by PrintErrors(), and Run().
|
inlineprivate |
Definition at line 199 of file hdiv3dpaper201504.h.
References IsZero().
Referenced by CreateOneCuboWithTetraedrons().
void Hdiv3dPaper201504::PrintErrors | ( | ApproximationSpace | problem, |
Eltype | element, | ||
TPZVec< int > | POrderBeginAndEnd, | ||
TPZVec< int > | ndivinterval, | ||
TPZVec< REAL > & | errors, | ||
std::ostream & | output | ||
) |
Definition at line 241 of file hdiv3dpaper201504.cpp.
References ChangeExternalOrderConnects(), TPZCompMesh::CleanUpUnconnectedNodes(), CMeshFlux(), CMeshH1(), CMeshMixed(), CMeshPressure(), CreateOneCubo(), CreateOneCuboWithTetraedrons(), DebugStop, ECub, EH1, EHDiv, EHDivStar, EHDivStarStar, TPZCompMesh::Element(), EPrism, ErrorH1(), ErrorPrimalDual(), ETetra, TPZCompMesh::ExpandSolution(), fDim, GMeshWithPrism(), TPZCompMesh::NElements(), TPZCompMesh::NEquations(), pow(), TPZGeoMesh::SetDimension(), TPZVec< T >::size(), SolveSyst(), and TPZBuildMultiphysicsMesh::TransferFromMultiPhysics().
void Hdiv3dPaper201504::Run | ( | ApproximationSpace | problem, |
Eltype | element, | ||
TPZVec< int > | POrderBeginAndEnd, | ||
TPZVec< int > | ndivinterval, | ||
TPZFMatrix< REAL > & | errors | ||
) |
Definition at line 75 of file hdiv3dpaper201504.cpp.
References ChangeExternalOrderConnects(), TPZCompMesh::CleanUpUnconnectedNodes(), CMeshFlux(), CMeshH1(), CMeshMixed(), CMeshPressure(), CreateOneCubo(), CreateOneCuboWithTetraedrons(), DebugStop, ECub, EH1, EHDiv, EHDivStar, EHDivStarStar, TPZCompMesh::Element(), EPrism, ErrorH1(), ErrorPrimalDual(), ETetra, TPZCompMesh::ExpandSolution(), fDim, GMeshWithPrism(), TPZCompMesh::NElements(), pow(), TPZFMatrix< TVar >::Resize(), TPZGeoMesh::SetDimension(), TPZVec< T >::size(), SolveSyst(), and TPZBuildMultiphysicsMesh::TransferFromMultiPhysics().
|
inlineprivate |
Definition at line 217 of file hdiv3dpaper201504.h.
|
inlineprivate |
Definition at line 213 of file hdiv3dpaper201504.h.
|
inlineprivate |
Definition at line 209 of file hdiv3dpaper201504.h.
|
staticprivate |
Definition at line 1025 of file hdiv3dpaper201504.cpp.
References cos(), TPZVec< T >::resize(), TPZFMatrix< TVar >::Resize(), and sin.
Referenced by CMeshMixed(), and ErrorPrimalDual().
|
staticprivate |
Definition at line 1056 of file hdiv3dpaper201504.cpp.
References cos(), TPZVec< T >::resize(), TPZFMatrix< TVar >::Resize(), and sin.
|
private |
Definition at line 1720 of file hdiv3dpaper201504.cpp.
References TPZSkylineStructMatrix::Create(), ELDLt, ELU, TPZCompMesh::NEquations(), substruct_tst14.test::numthreads, TPZAnalysis::Run(), TPZFrontStructMatrix< front >::SetDecomposeType(), TPZStepSolver< TVar >::SetDirect(), TPZStepSolver< TVar >::SetGMRES(), TPZStructMatrixBase::SetNumThreads(), TPZMatrixSolver< TVar >::SetReferenceMatrix(), TPZAnalysis::SetSolver(), and TPZAnalysis::SetStructuralMatrix().
Referenced by PrintErrors(), and Run().
|
private |
Definition at line 114 of file hdiv3dpaper201504.h.
Referenced by CMeshFlux(), CMeshH1(), CMeshMixed(), CreateOneCubo(), CreateOneCuboWithTetraedrons(), GMeshWithPrism(), and Hdiv3dPaper201504().
|
private |
Definition at line 115 of file hdiv3dpaper201504.h.
Referenced by CMeshFlux(), CMeshH1(), CMeshMixed(), CreateOneCubo(), CreateOneCuboWithTetraedrons(), GMeshWithPrism(), and Hdiv3dPaper201504().
|
private |
Definition at line 116 of file hdiv3dpaper201504.h.
Referenced by CMeshFlux(), CMeshH1(), CMeshMixed(), CreateOneCubo(), CreateOneCuboWithTetraedrons(), GMeshWithPrism(), and Hdiv3dPaper201504().
|
private |
Definition at line 117 of file hdiv3dpaper201504.h.
Referenced by CMeshFlux(), CMeshH1(), CMeshMixed(), CreateOneCubo(), CreateOneCuboWithTetraedrons(), GMeshWithPrism(), and Hdiv3dPaper201504().
|
private |
Definition at line 118 of file hdiv3dpaper201504.h.
Referenced by CMeshFlux(), CMeshH1(), CMeshMixed(), CreateOneCubo(), CreateOneCuboWithTetraedrons(), GMeshWithPrism(), and Hdiv3dPaper201504().
|
private |
Definition at line 119 of file hdiv3dpaper201504.h.
Referenced by CMeshFlux(), CMeshH1(), CMeshMixed(), CreateOneCubo(), CreateOneCuboWithTetraedrons(), GMeshWithPrism(), and Hdiv3dPaper201504().
|
private |
Definition at line 107 of file hdiv3dpaper201504.h.
Referenced by CMeshFlux(), CMeshH1(), CMeshPressure(), Hdiv3dPaper201504(), PrintErrors(), and Run().
|
private |
Definition at line 111 of file hdiv3dpaper201504.h.
Referenced by CMeshFlux(), CMeshH1(), CMeshMixed(), and Hdiv3dPaper201504().
|
private |
Definition at line 122 of file hdiv3dpaper201504.h.
Referenced by Hdiv3dPaper201504().
|
private |
Definition at line 109 of file hdiv3dpaper201504.h.
Referenced by CMeshFlux(), CMeshH1(), CMeshMixed(), CMeshPressure(), CreateOneCubo(), CreateOneCuboWithTetraedrons(), GMeshWithPrism(), and Hdiv3dPaper201504().
|
private |
Definition at line 120 of file hdiv3dpaper201504.h.
Referenced by CMeshFlux(), and Hdiv3dPaper201504().
|
private |
Definition at line 112 of file hdiv3dpaper201504.h.
Referenced by Hdiv3dPaper201504().
|
private |
Definition at line 126 of file hdiv3dpaper201504.h.
Referenced by Hdiv3dPaper201504().
|
private |
Definition at line 124 of file hdiv3dpaper201504.h.
Referenced by Hdiv3dPaper201504().
|
private |
Definition at line 128 of file hdiv3dpaper201504.h.
|
private |
Definition at line 130 of file hdiv3dpaper201504.h.
Referenced by CreateOneCuboWithTetraedrons(), and Hdiv3dPaper201504().