12 PZError <<
"TPZGaussRule creation precision = " << order <<
" not available\n";
22 PZError <<
"ERROR(TPZIntRuleT3D::w) Out of bounds!!\n";
43 PZError <<
"ERROR(TPZIntRuleT::loc) Out of bounds!!\n";
64 #define Length(wts) (sizeof(wts) / (sizeof(wts[0]))) 66 #define Perm4(a) a,a,a,a 67 #define Dup4(w) ((1.0L/6.0L)*w) 69 #define Perm31(a) a,a,a,(1.L-(3.L*(a))), \ 70 a,a,(1.L-(3.L*(a))),a, \ 71 a,(1.L-(3.L*(a))),a,a, \ 73 #define Dup31(w) Dup4(w),Dup4(w),Dup4(w),Dup4(w) 75 #define Perm22(a) a,a,(0.5L-(a)),(0.5L-(a)), \ 76 a,(0.5L-(a)),a,(0.5L-(a)), \ 77 a,(0.5L-(a)),(0.5L-(a)),a, \ 78 (0.5L-(a)),a,(0.5L-(a)),a, \ 79 (0.5L-(a)),a,a,(0.5L-(a)), \ 80 (0.5L-(a)),(0.5L-(a)),a,a 81 #define Dup22(w) Dup4(w),Dup4(w),Dup4(w),Dup4(w),Dup4(w),Dup4(w) 83 #define Perm211(a,b) a,a,b,(1.0L-(a)-(a)-(b)), \ 84 a,a,(1.0L-(a)-(a)-(b)),b, \ 85 a,b,a,(1.0L-(a)-(a)-(b)), \ 86 a,b,(1.0L-(a)-(a)-(b)),a, \ 87 a,(1.0L-(a)-(a)-(b)),a,b, \ 88 a,(1.0L-(a)-(a)-(b)),b,a, \ 89 b,a,a,(1.0L-(a)-(a)-(b)), \ 90 b,a,(1.0L-(a)-(a)-(b)),a, \ 91 b,(1.0L-(a)-(a)-(b)),a,a, \ 92 (1.0L-(a)-(a)-(b)),a,a,b, \ 93 (1.0L-(a)-(a)-(b)),a,b,a, \ 94 (1.0L-(a)-(a)-(b)),b,a,a 95 #define Dup211(w) Dup4(w),Dup4(w),Dup4(w),Dup4(w),Dup4(w),Dup4(w), \ 96 Dup4(w),Dup4(w),Dup4(w),Dup4(w),Dup4(w),Dup4(w) 98 #define Perm0111(p,a,b,c) p,a,b,c, p,a,c,b, p,b,a,c, p,b,c,a, p,c,a,b, p,c,b,a 99 #define Perm1111(a,b,c) Perm0111(a,b,c,(1.0L-(a)-(b)-(c))), \ 100 Perm0111(b,a,c,(1.0L-(a)-(b)-(c))), \ 101 Perm0111(c,a,b,(1.0L-(a)-(b)-(c))), \ 102 Perm0111((1.0L-(a)-(b)-(c)),a,b,c) 106 #define Dup1111(w) Dup4(w),Dup4(w),Dup4(w),Dup4(w),Dup4(w),Dup4(w),Dup4(w),Dup4(w), \ 107 Dup4(w),Dup4(w),Dup4(w),Dup4(w),Dup4(w),Dup4(w),Dup4(w),Dup4(w), \ 108 Dup4(w),Dup4(w),Dup4(w),Dup4(w),Dup4(w),Dup4(w),Dup4(w),Dup4(w) 122 Perm31(.13819660112501051517954131656343619L)
127 Dup31(.13852796651186214232361769837564129L),
129 Dup31(.11147203348813785767638230162435871L)
133 Perm31(.32805469671142664733580581998119743L),
135 Perm31(.10695227393293068277170204157061650L)
139 Dup31(.07349304311636194934358694586367885L),
140 Dup31(.11268792571801585036501492847638892L),
141 Dup22(.04254602077708146686093208377328816L)
144 Perm31(.09273525031089122628655892066032137L),
145 Perm31(.31088591926330060975814749494040332L),
146 Perm22(.04550370412564965000000000000000000L)
150 Dup31(.11268792571801585079918565233328633L),
151 Dup31(.07349304311636194954371020548632750L),
152 Dup22(.04254602077708146643806942812025744L)
156 Perm31(.31088591926330060979734573376345783L),
157 Perm31(.09273525031089122640232391373703061L),
158 Perm22(.04550370412564964949188052627933943L)
162 Dup31(.03992275025816749209969062755747998L),
163 Dup31(.01007721105532064294801323744593686L),
164 Dup31(.05535718154365472209515327785372602L),
168 Perm31(.21460287125915202928883921938628499L),
169 Perm31(.04067395853461135311557944895641006L),
170 Perm31(.32233789014227551034399447076249213L),
172 Perm211(.06366100187501752529923552760572698L,
173 .60300566479164914136743113906093969L)
177 Dup4(.09548528946413084886057843611722638L),
178 Dup31(.04232958120996702907628617079854674L),
179 Dup22(.03189692783285757993427482408294246L),
180 Dup211(.03720713072833462136961556119148112L),
181 Dup211(.00811077082990334156610343349109654L)
185 Perm31(.31570114977820279942342999959331149L),
186 Perm22(.05048982259839636876305382298656247L),
187 Perm211(.18883383102600104773643110385458576L,
188 .57517163758700002348324157702230752L),
189 Perm211(.02126547254148324598883610149981994L,
190 .81083024109854856111810537984823239L)
194 Dup31(.00639714777990232132145142033517302L),
195 Dup31(.04019044802096617248816115847981783L),
196 Dup31(.02430797550477032117486910877192260L),
197 Dup31(.05485889241369744046692412399039144L),
198 Dup22(.03571961223409918246495096899661762L),
199 Dup211(.00718319069785253940945110521980376L),
200 Dup211(.01637218194531911754093813975611913L)
203 Perm31(.03967542307038990126507132953938949L),
204 Perm31(.31448780069809631378416056269714830L),
205 Perm31(.10198669306270330000000000000000000L),
206 Perm31(.18420369694919151227594641734890918L),
207 Perm22(.06343628775453989240514123870189827L),
208 Perm211(.02169016206772800480266248262493018L,
209 .71993192203946593588943495335273478L),
210 Perm211(.20448008063679571424133557487274534L,
211 .58057719012880922417539817139062041L)
215 Dup4(.05642669317950620658871504327612541L),
216 Dup31(.00334109507471348040299974430471765L),
217 Dup31(.03011375476877376390731423843157491L),
218 Dup31(.00649096092006153463576211689456861L),
219 Dup211(.00980928586825458643196874259255500L),
220 Dup211(.02811915382336547255163261742529262L),
221 Dup211(.00789458690833150076834149200960885L),
222 Dup211(.01949281204723999671697219448924602L)
226 Perm31(.03402217700104486646540370887876764L),
227 Perm31(.32277033353380052539137668325496398L),
228 Perm31(.06045707742577493000000000000000000L),
229 Perm211(.45536299094720821180030815044164301L,
230 .00568317736533017990610016014574474L),
231 Perm211(.11950225539382580097797370469611438L,
232 .46311683247848994097622449365772955L),
233 Perm211(.02802195578340115815505750665412373L,
234 .72520607683986748873856595428480993L),
235 Perm211(.17483303201157461578532464597224522L,
236 .61668257178125640457068309097954073L)
240 Dup4(.04739977355602073838473882117805110L),
241 Dup31(.02693705999226869980276416100488208L),
242 Dup31(.00986915971679338323455773543017308L),
243 Dup211(.00036194434433925362423987838480851L),
244 Dup211(.01013587167975579278851647011501678L),
245 Dup211(.01139388122019523162362093488071434L),
246 Dup211(.00657614727703590416745574020045070L),
247 Dup211(.02573973198045607127903601225965471L),
248 Dup211(.01290703579886199063929543024949899L)
252 Perm31(.31225006869518864772980831868682746L),
253 Perm31(.11430965385734615058737119765365045L),
254 Perm211(.00613800882479074784759371324841535L,
255 .94298876734520486619763058691825076L),
256 Perm211(.03277946821644267077472102033232419L,
257 .34018479408710763278898792494967132L),
258 Perm211(.41043073921896549428789784425151169L,
259 .16548602561961105160449012444452641L),
260 Perm211(.03248528156482304783551493997842620L,
261 .13385215221200951309782843596456662L),
262 Perm211(.12105018114558942599389500159505053L,
263 .47719037990428035054410640829690722L),
264 Perm211(.17497934218393902428494922652831040L,
265 .62807184547536601069327607221790967L)
269 Dup4(.03943210802865886350733033449120443L),
270 Dup31(.01566212622727911315008856276876506L),
271 Dup31(.00333217237490140814440923615401491L),
272 Dup31(.01402607740748974743749136099769235L),
273 Dup211(.00108590752933246630682209837723547L),
274 Dup211(.02023596043066317891111657316540838L),
275 Dup211(.01179021487212586353684938046770181L),
276 Dup211(.00769031498252129590113157802073890L),
277 Dup211(.00443730570345920390473072602143959L),
278 Dup211(.01142954846718404041077055259859402L),
279 Dup1111(.00618564017121781141281925508389534L)
283 Perm31(.12149136777653379449770230990807224L),
284 Perm31(.03231625915107289635395445208958103L),
285 Perm31(.32492614978860679781284190241442197L),
286 Perm211(.00414835697166001200000000000001000L,
287 .59826599679018635020545384277617780L),
288 Perm211(.22462461067637714141447515116498644L,
289 .47366228783234957140836966920205236L),
290 Perm211(.05190508777256569674422721644265892L,
291 .56314477790827989873710197630305713L),
292 Perm211(.13493013121624020422375917234299303L,
293 .70835883078581895385699500512712996L),
294 Perm211(.02519119210825247292005118506530550L,
295 .78371950734007737543057403429990901L),
296 Perm211(.36531877978173361396933198009886720L,
297 .13460390831686580000000000000001000L),
298 Perm1111(.52290753950993847296521692758602923L,
299 .14075363054369590184253913949127849L,
300 .00976243819645261550829228038997777L)
304 Dup31(.01276763770097074150203778596512505L),
305 Dup31(.01612110423790926821858154489575762L),
306 Dup31(.00037161269857844220004255818986081L),
307 Dup31(.01971744178668545763955330903818868L),
308 Dup31(.00257139093086271836218234759448548L),
309 Dup22(.00381724787051057590575318412783326L),
310 Dup22(.01208722707766311317860318419314605L),
311 Dup211(.00310586115843473343431688149929620L),
312 Dup211(.00545953133647103066912742126769441L),
313 Dup211(.00214289974849699750666852093655947L),
314 Dup211(.00552467146725782962244930098165075L),
315 Dup211(.00853695669449918042985177836672201L),
316 Dup1111(.01151017784832330697333644123403294L),
317 Dup1111(.00520387865288561360396792421252454L)
320 Perm31(.11529974435148014530455720738915911L),
321 Perm31(.20233628224059090000000000000001000L),
322 Perm31(.01171759795761995151247906754831398L),
323 Perm31(.31330644136780106727760279964458934L),
324 Perm31(.25000573011558370000000000000001000L),
325 Perm22(.02099547435075800669020182527059018L),
326 Perm22(.15177401824745010000000000000001000L),
327 Perm211(.02441977874343536478314000904761661L,
328 .84832928469787285064520886743481574L),
329 Perm211(.25620709853201830896382010708562210L,
330 .48248737387384884780289289672973542L),
331 Perm211(.01679032097960299061471796028857942L,
332 .69477194236575592695949850988417719L),
333 Perm211(.12616082113987204239970703846895919L,
334 .72541048930294811897485950521263380L),
335 Perm211(.43143517452637984721670695066371957L,
336 .11272193989285241520959977211007542L),
337 Perm1111(.50167006246250569747515507168476130L,
338 .27247180286952239178351046753060445L,
339 .07207432880729891465015948456335820L),
340 Perm1111(.26164485453781874566945505006396799L,
341 .08629229194706173191742351944352488L,
342 .02056541065587613830062489762710900L)
346 Dup4(.01501368777308314675062970631615983L),
347 Dup31(.01822520928017342532379068941490097L),
348 Dup31(.00700610921774146424038518693926311L),
349 Dup22(.01642354974394954829540573107905531L),
350 Dup22(.00512061009636059707262596949702171L),
351 Dup22(.01119669865290491634382032086351956L),
352 Dup211(.01561914973337995400953811302431969L),
353 Dup211(.00248442301331647441904056776338473L),
354 Dup211(.00163859853481823893844525309440751L),
355 Dup211(.00590303044012492197171914655535865L),
356 Dup211(.01102208245821805240445097989201525L),
357 Dup211(.00040645183996417822585155512755848L),
358 Dup1111(.00268796997296854209745781926651729L),
359 Dup1111(.00197950480552671190531894675510740L),
360 Dup1111(.00544631918142579120943187040108667L)
364 Perm31(.15521609351908950314115784335704739L),
365 Perm31(.33012266333967360024433192595196779L),
366 Perm22(.16680640389386249928937782601144234L),
367 Perm22(.02492378854777361779701400374860089L),
368 Perm22(.09719762991575100143072243716240818L),
369 Perm211(.24785929015736256692746910620827934L,
370 .43365324235685144718726061434767377L),
371 Perm211(.02223159608186700290879521860892929L,
372 .83690032040373400514509486595698594L),
373 Perm211(.10727869331305341049150459639584801L,
374 .77498030597500180756587877274179289L),
375 Perm211(.19817684388398981142331840582142759L,
376 .58756930578220530259172017903595920L),
377 Perm211(.06917924347737931647732534347465502L,
378 .60420006666006644707935264871115302L),
379 Perm211(.02311471947193316000000000000001000L,
380 .93087579279244424864920228882888307L),
381 Perm1111(.11788928751019608922290117470644250L,
382 .11651536422540720000000000000001000L,
383 .04202400112551542095676634303719997L),
384 Perm1111(.67703279860228426355032221326746594L,
385 .04616537602461971083458041122176081L,
386 .00084434031890503975729899692135905L),
387 Perm1111(.48489008867363312201080094154790828L,
388 .35888294295520201572423646909421086L,
389 .13818283491762872996955080907912355L)
393 Dup31(.00406511366527076704362088368356360L),
394 Dup31(.00221453853344557814375995695000715L),
395 Dup31(.00581343826788845054953733388214554L),
396 Dup31(.01962554338583572159756233339617148L),
397 Dup31(.00038757379059082143645387212483937L),
398 Dup211(.01164297197217703698552134010055516L),
399 Dup211(.00528904298828171313177368830528561L),
400 Dup211(.00183108541636005593766978234880692L),
401 Dup211(.00824964737721464520674496691736603L),
402 Dup1111(.00300992453470824513768887482089866L),
403 Dup1111(.00080471656173675346362618087603116L),
404 Dup1111(.00298504125884930711876556928839215L),
405 Dup1111(.00568960024187607669633614778119730L),
406 Dup1111(.00415908658785457156700139801826135L),
407 Dup1111(.00072823892045727243561364297456536L),
408 Dup1111(.00543265007699582482162423406519264L)
411 Perm31(.32725336252384856390930966926852893L),
412 Perm31(.04476130446668508088379420964788419L),
413 Perm31(.08614033110243635365372087402988575L),
414 Perm31(.20876264250043229682653570839761758L),
415 Perm31(.01410497380292096006358791521029282L),
416 Perm211(.10216532418077681234766925269825839L,
417 .57394636759433382028140028934601068L),
418 Perm211(.40757005166001071572132956513017833L,
419 .09222787013902013000000000000000000L),
420 Perm211(.01566400074028035855575867095780840L,
421 .70128109595894403271399676732084261L),
422 Perm211(.22549635625250290537807241542011034L,
423 .47690639744208871158605833541070112L),
424 Perm1111(.39059842812814580000000000000000000L,
425 .20135905441239221681230773272350923L,
426 .01611228807103002985780269315483708L),
427 Perm1111(.10613506799890214555561390298480794L,
428 .03273581868172692849440040779126601L,
429 .00359790765372716669079715233859245L),
430 Perm1111(.56363837316977438968968166306485017L,
431 .23029207223006574545025268741356515L,
432 .19071993417435518627124877906378985L),
433 Perm1111(.36762550953258608440922067759911669L,
434 .20788513802300449507171021252507348L,
435 .33121048851934490000000000000000000L),
436 Perm1111(.71923236898172952950234018407969909L,
437 .17632791180193297621579930336369727L,
438 .02076023625713100907549734406116442L),
439 Perm1111(.52782499521529872984092400758172763L,
440 .43728908922034181655262387608419181L,
441 .00922016518566419494631775549492202L),
442 Perm1111(.54836745449481907289949105056077457L,
443 .34478155061716412287036718709203314L,
444 .08672172833222153946294387400858277L)
448 if(order > 14) order = 14;
449 int NRGAUPO[15] = { 1, 1, 4, 8, 14, 14, 24, 35, 46, 61, 81, 109, 140, 171, 236};
501 PZError <<
"TPZIntRuleT3D not implemented by order " << order << std::endl;
long double QUAD_TETRAH_P5_wts[]
REAL W(int i) const
Returns weight for the ith point.
long double QUAD_TETRAH_P1_pts[Length(QUAD_TETRAH_P1_wts) *4]
long double QUAD_TETRAH_P7_pts[Length(QUAD_TETRAH_P7_wts) *4]
void Loc(int i, TPZVec< REAL > &pos) const
Returns location of the ith point.
long double QUAD_TETRAH_P6_pts[Length(QUAD_TETRAH_P6_wts) *4]
Templated vector implementation.
long double QUAD_TETRAH_P12_pts[Length(QUAD_TETRAH_P12_wts) *4]
long double QUAD_TETRAH_P14_pts[Length(QUAD_TETRAH_P14_wts) *4]
long double QUAD_TETRAH_P9_pts[Length(QUAD_TETRAH_P9_wts) *4]
TPZManVector< long double > fLocationZeta
Location of the integration point Zeta.
TPZManVector< long double > fLocationKsi
Location of the integration point Ksi.
virtual void Resize(const int64_t newsize, const T &object)
Resizes the vector object.
int fOrder
Polynomial order of the integration rule.
long double QUAD_TETRAH_P3_pts[Length(QUAD_TETRAH_P3_wts) *4]
long double QUAD_TETRAH_P8_pts[Length(QUAD_TETRAH_P8_wts) *4]
void TransformBarycentricCoordInCartesianCoord(long double baryvec[], long double weightvec[])
Transform barycentric coordinates of the point in tetrahedra by cartesian coordinates (3 component)...
long double QUAD_TETRAH_P13_wts[]
long double QUAD_TETRAH_P10_pts[Length(QUAD_TETRAH_P10_wts) *4]
long double QUAD_TETRAH_P12_wts[]
TPZManVector< long double > fLocationEta
Location of the integration point Eta.
long double QUAD_TETRAH_P7_wts[35]
long double QUAD_TETRAH_P8_wts[]
long double QUAD_TETRAH_P1_wts[]
long double QUAD_TETRAH_P14_wts[]
long double QUAD_TETRAH_P9_wts[]
long double QUAD_TETRAH_P11_pts[Length(QUAD_TETRAH_P11_wts) *4]
long double QUAD_TETRAH_P2_pts[Length(QUAD_TETRAH_P2_wts) *4]
#define Perm1111(a, b, c)
long double QUAD_TETRAH_P13_pts[Length(QUAD_TETRAH_P13_wts) *4]
Contains the TPZIntRuleT3D class which defines integration rule for tetrahedra.
TPZManVector< long double > fWeight
Weight of the integration point.
int ComputingSymmetricCubatureRule(int order)
Computes the cubature rules following the symmetric construction presented at Linbo Zhang article...
~TPZIntRuleT3D()
Default destructor. It delete the vector of points and weights.
long double QUAD_TETRAH_P10_wts[]
long double QUAD_TETRAH_P2_wts[]
int fNumInt
Number of integration points for this object.
long double QUAD_TETRAH_P6_wts[]
long double QUAD_TETRAH_P4_pts[Length(QUAD_TETRAH_P4_wts) *4]
long double QUAD_TETRAH_P5_pts[Length(QUAD_TETRAH_P5_wts) *4]
long double QUAD_TETRAH_P11_wts[]
#define PZError
Defines the output device to error messages and the DebugStop() function.
long double QUAD_TETRAH_P3_wts[]
TPZIntRuleT3D(int i=2)
Constructor of integration rule for tetrahedra.
long double QUAD_TETRAH_P4_wts[]