27
A Parallel Computational A Parallel Computational Framework for Framework for Discontinuous Galerkin Discontinuous Galerkin Methods Methods Kumar Vemaganti Mechanical Engineering University of Cincinnati

A Parallel Computational Framework for Discontinuous Galerkin Methods

  • Upload
    donny

  • View
    43

  • Download
    0

Embed Size (px)

DESCRIPTION

A Parallel Computational Framework for Discontinuous Galerkin Methods. Kumar Vemaganti Mechanical Engineering University of Cincinnati. Acknowledgements. ICES (formerly TICAM), UT Austin Abani Patra, SUNY Buffalo. Outline. PI-FED in a nutshell Design Considerations Implementation Issues - PowerPoint PPT Presentation

Citation preview

Page 1: A Parallel Computational Framework for Discontinuous Galerkin Methods

A Parallel Computational A Parallel Computational Framework for Discontinuous Framework for Discontinuous Galerkin MethodsGalerkin Methods

Kumar Vemaganti

Mechanical Engineering

University of Cincinnati

Page 2: A Parallel Computational Framework for Discontinuous Galerkin Methods

AcknowledgementsAcknowledgements

•ICES (formerly TICAM), UT Austin•Abani Patra, SUNY Buffalo

Page 3: A Parallel Computational Framework for Discontinuous Galerkin Methods

OutlineOutline

PI-FED in a nutshellDesign ConsiderationsImplementation IssuesSample Applications

Page 4: A Parallel Computational Framework for Discontinuous Galerkin Methods

PIFED: Parallel Infrastructure for PIFED: Parallel Infrastructure for Finite Element DiscretizationsFinite Element Discretizations

Two-dimensional Adaptive FEConforming and Non-conformingQuadrilaterals and TrianglesParallel: Partitioning through Space

Filling CurvesMultiple Linear SolversC++ and some FORTRAN

Page 5: A Parallel Computational Framework for Discontinuous Galerkin Methods

Design Considerations (for a Design Considerations (for a Research Code)Research Code)

Source code available (GPL)Flexible: Multiple Solution

ComponentsExtensible: Object OrientedPortable on *NIX: RS6000, IRIX,

Linux, Mac OS XParallel: Distributed DatastructuresAdaptive: Dynamic Datastructures

Page 6: A Parallel Computational Framework for Discontinuous Galerkin Methods

The Finite Element ProblemThe Finite Element Problem

Page 7: A Parallel Computational Framework for Discontinuous Galerkin Methods

The Finite Element ProblemThe Finite Element Problem

Page 8: A Parallel Computational Framework for Discontinuous Galerkin Methods

Discontinuous Formulations: Discontinuous Formulations: Additional TermsAdditional Terms

Additional terms on the LHS:

The Finite Element Problem is completely specified ifthe coefficients A**, B**, F*, H*, J** are specified foreach element/edge.

Page 9: A Parallel Computational Framework for Discontinuous Galerkin Methods

OrganizationOrganization

PI-FEDLibrary

Application(User-supplied)

Partitioning

Datastructures Communications

SolversDomain (Mesh)

Coefficients:A**, J**, etc.

Control Parameters

Page 10: A Parallel Computational Framework for Discontinuous Galerkin Methods

Non-overlapping Partitioning:Non-overlapping Partitioning:Hilbert Space Filling CurvesHilbert Space Filling Curves

Hilbert SFC: A one-dimensional curve that fills the unitsquare.

SFC Implementation: HSFC2D & HSFC3D (H. Carter Edwards)

Page 11: A Parallel Computational Framework for Discontinuous Galerkin Methods

PIFED: Other FeaturesPIFED: Other Features

•Solvers:•Direct: SPOOLES, SPARSE 1.3•Iterative: PCG & GMRES•AZTEC interface in the works

•Datastructures•Hashtables for elements and nodes (gNodes, pNodes)•Hash rule based on SFC key

•Communications•MPICH version of MPI•Hidden from user

Page 12: A Parallel Computational Framework for Discontinuous Galerkin Methods

Coefficient Function MCOEFF:Coefficient Function MCOEFF:Element by ElementElement by Element

#include "AFE-machine.hh"#include "AFE-3D.hh"

subroutine USER_MCOEFF ( xyzloc, xyzglob, . mat, neq, nrhs, . nreal, rval, nint, ival, . unreal, urval, unint, uival, . axx, axy, ayx, ayy, . a0x, a0y, ax0, ay0, . a00, f0, fx, fy )

Page 13: A Parallel Computational Framework for Discontinuous Galerkin Methods

Coefficient Function MCOEFFCoefficient Function MCOEFF

c-- Fill up the coefficient arrays axx(1,1) = a1111 ayy(1,1) = 0.5d0*a1212

axy(1,2) = a1122 ayx(1,2) = 0.5d0*a1212

axy(2,1) = 0.5d0*a1212 ayx(2,1) = a1122

axx(2,2) = 0.5d0*a1212 ayy(2,2) = a2222

c-- RHS coefficients f0(1,1) = -1.0d0*a1111 f0(2,1) = -1.0d0*a2222

Page 14: A Parallel Computational Framework for Discontinuous Galerkin Methods

/* Dirichlet BCs */ if ( strcmp ( Type, "Displacement" ) == 0 ) {

/* LHS terms */ BX0[0+0*(*n_c)] = a1111*unorm[0]; BX0[0+1*(*n_c)] = a1122*unorm[1]; BX0[1+0*(*n_c)] = 0.5*a1212*unorm[1]; BX0[1+1*(*n_c)] = 0.5*a1212*unorm[0];

BY0[0+0*(*n_c)] = 0.5*a1212*unorm[1]; BY0[0+1*(*n_c)] = 0.5*a1212*unorm[0]; BY0[1+0*(*n_c)] = a1122*unorm[0]; BY0[1+1*(*n_c)] = a2222*unorm[1];

Coefficient Function BCOEFF:Coefficient Function BCOEFF:Boundary EdgesBoundary Edges

Page 15: A Parallel Computational Framework for Discontinuous Galerkin Methods

Coefficient Function BCOEFFCoefficient Function BCOEFF

B0X[0+0*(*n_c)] = -1.0*a1111*unorm[0]; B0X[0+1*(*n_c)] = -0.5*a1212*unorm[1]; B0X[1+0*(*n_c)] = -1.0*a1122*unorm[1]; B0X[1+1*(*n_c)] = -0.5*a1212*unorm[0];

B0Y[0+0*(*n_c)] = -0.5*a1212*unorm[1]; B0Y[0+1*(*n_c)] = -1.0*a1122*unorm[0]; B0Y[1+0*(*n_c)] = -0.5*a1212*unorm[0]; B0Y[1+1*(*n_c)] = -1.0*a2222*unorm[1];

/* RHS terms */ hx[0] = u0*unorm[0]*a1111 + u1*unorm[1]*a1122; hx[1] = 0.5*a1212*(u0*unorm[1] + u1*unorm[0]); hy[0] = 0.5*a1212*(u0*unorm[1] + u1*unorm[0]); hy[1] = u0*unorm[0]*a1122 + u1*unorm[1]*a2222;

} /* End of Dirichlet BCs */

Page 16: A Parallel Computational Framework for Discontinuous Galerkin Methods

Coefficient Function JCOEFF: Coefficient Function JCOEFF: Interior EdgesInterior Edges

c-------------------------------------------------c-- Coefficients for this elementc-------------------------------------------------c-- JX0 JX0(1,1) = unorma(1)*a1111 JX0(1,2) = unorma(2)*a1122 JX0(2,1) = 0.5d0*unorma(2)*a1212 JX0(2,2) = 0.5d0*unorma(1)*a1212

c-- JY0 JY0(1,1) = 0.5d0*unorma(2)*a1212 JY0(1,2) = 0.5d0*unorma(1)*a1212 JY0(2,1) = unorma(1)*a1122 JY0(2,2) = unorma(2)*a2222

Page 17: A Parallel Computational Framework for Discontinuous Galerkin Methods

Coefficient Function JCOEFFCoefficient Function JCOEFF

c------------------------------------------------c-- Coefficients for neighborc------------------------------------------------c-- JX0 JX0_n(1,1) = unorma(1)*n1111 JX0_n(1,2) = unorma(2)*n1122 JX0_n(2,1) = 0.5d0*unorma(2)*n1212 JX0_n(2,2) = 0.5d0*unorma(1)*n1212

c-- JY0 JY0_n(1,1) = 0.5d0*unorma(2)*n1212 JY0_n(1,2) = 0.5d0*unorma(1)*n1212 JY0_n(2,1) = unorma(1)*n1122 JY0_n(2,2) = unorma(2)*n2222

Page 18: A Parallel Computational Framework for Discontinuous Galerkin Methods

Control ParametersControl Parameters

// Set the number of post-processing quantities int npost = 5; set_parameter ( NUM_POST_QTY, (void *)&npost );

// Set the number of RHSs int nrhs = 1; set_parameter ( NUM_RHS, (void *)&nrhs );

// Set number of solution components int nc=2; set_parameter ( NUM_COMP, (void *)&nc );

// Set the finite element type to DG int fe_type=NONCONFORMING; set_parameter ( FE_TYPE, (void *)&fe_type );

Page 19: A Parallel Computational Framework for Discontinuous Galerkin Methods

Example: Linear ElasticityExample: Linear Elasticity

• Horizontal traction force on right edge• Left edge fixed• Isotropic Material• p-level = 2

Page 20: A Parallel Computational Framework for Discontinuous Galerkin Methods

Results on Initial MeshResults on Initial Mesh

HorizontalDisplacements

VerticalDisplacements

Page 21: A Parallel Computational Framework for Discontinuous Galerkin Methods

Results on Initial MeshResults on Initial Mesh

von MisesStress

Page 22: A Parallel Computational Framework for Discontinuous Galerkin Methods

Refined MeshRefined Mesh

• Horizontal traction force on right edge• Left edge fixed• Isotropic Material• p-level = 2

Page 23: A Parallel Computational Framework for Discontinuous Galerkin Methods

Results on Refined MeshResults on Refined Mesh

HorizontalDisplacements

VerticalDisplacements

Page 24: A Parallel Computational Framework for Discontinuous Galerkin Methods

Results on Refined MeshResults on Refined Mesh

von MisesStress

Page 25: A Parallel Computational Framework for Discontinuous Galerkin Methods

Another Example:Another Example:Topology OptimizationTopology Optimization

QuickTime™ and aBMP decompressorare needed to see this picture.

Goal: Maximize thestiffness, subject tovolume constraints

Discrete problem: Determinewhich elements have materialin them, and which ones don't

Page 26: A Parallel Computational Framework for Discontinuous Galerkin Methods

Extreme MaterialsExtreme Materials

QuickTime™ and aBMP decompressorare needed to see this picture.

Page 27: A Parallel Computational Framework for Discontinuous Galerkin Methods

Extreme MaterialsExtreme Materials

Material with Poisson Ratio = -0.95