From 9644f6725caf0036f7a301d77aeb42aa31773b4c Mon Sep 17 00:00:00 2001 From: rho Date: Tue, 29 Nov 2011 13:43:00 +0000 Subject: [PATCH] Added parameter mixedFEM to create to have mixed formulation when nf[1] = 0 git-svn-id: http://svn.sintef.no/trondheim/IFEM/trunk@1312 e10b68d5-8a6e-419e-a041-bce267b0401d --- src/ASM/ASM2D.C | 7 ++++--- src/ASM/ASM2D.h | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/ASM/ASM2D.C b/src/ASM/ASM2D.C index b9444fc4..b508fea3 100644 --- a/src/ASM/ASM2D.C +++ b/src/ASM/ASM2D.C @@ -21,14 +21,15 @@ #endif -ASMbase* ASM2D::create (ASM::Discretization discretization, unsigned char* nf) +ASMbase* ASM2D::create (ASM::Discretization discretization, + unsigned char* nf, bool mixedFEM) { switch (discretization) { case ASM::SplineC1: return new ASMs2DC1(2,nf[0]); case ASM::Lagrange: - if (nf[1] > 0) + if (nf[1] > 0 || mixedFEM) return new ASMs2DmxLag(2,nf[0],nf[1]); else return new ASMs2DLag(2,nf[0]); @@ -42,7 +43,7 @@ ASMbase* ASM2D::create (ASM::Discretization discretization, unsigned char* nf) #endif default: - if (nf[1] > 0) + if (nf[1] > 0 || mixedFEM) return new ASMs2Dmx(2,nf[0],nf[1]); else return new ASMs2D(2,nf[0]); diff --git a/src/ASM/ASM2D.h b/src/ASM/ASM2D.h index 743ff4f4..770aefb1 100644 --- a/src/ASM/ASM2D.h +++ b/src/ASM/ASM2D.h @@ -40,7 +40,8 @@ public: //! \brief Creates a two-parametric patch of specified discretization type. //! \param[in] type The discretization method to use //! \param[in] nf Number of unknown per basis function in the patch - static ASMbase* create(ASM::Discretization type, unsigned char* nf); + static ASMbase* create(ASM::Discretization type, unsigned char* nf, + bool mixedFEM = false); //! \brief Returns a copy of this patch with identical FE discretizations. //! \param[in] nf Number of unknown per basis function in the patch