Gridap at a glance

Gridap provides a comprehensive suite of tools for grid-based approximation of partial differential equations (PDEs) in Julia. This page gives you a quick overview of the main capabilities and where to find detailed documentation for each feature.

Finite Element Discretizations

Gridap supports a wide range of finite element discretizations for solving PDEs:

  • Linear and nonlinear PDE systems - Handle both simple and complex mathematical problems
  • Transient problems - Solve time-dependent equations
  • Multi-variable problems - Couple different physics or solve systems of equations
  • Scalar and tensor variables - Work with single or multi-component quantities
  • Conforming and nonconforming elements - Choose from a variety of elements, with arbitrary polynomial order
  • Support for constraints - Constraints through Lagrange multipliers or linear constraints

📖 Learn more: Gridap.FESpaces, Gridap.MultiField, Gridap.ReferenceFEs, Gridap.ODEs

Mesh Support

Work with flexible mesh representations:

  • Structured and unstructured meshes - Regular grids or complex geometries
  • Polytopal meshes - Triangular/tetrahedral or quadrilateral/hexahedral elements
  • Physical entity labeling - Tag boundaries and regions for boundary conditions

📖 Learn more: Gridap.Geometry

Expandable building blocks

We provide a modular architecture that allows you seamlessly build your own low-level features:

  • Tensor algebra - Efficient tensor operations
  • Polynomials - Comprehensive polynomial basis library
  • Fields - Arbitrary operations on local fields
  • Quadratures - Library of numerical quadratures for integration

📖 Learn more: Gridap.Polynomials, Gridap.TensorValues, Gridap.Fields

Input/Output and Visualization

Get data in and results out:

  • VTK support - Export your results in VTK format for visualization
  • JDL2 - Save and load Gridap objects

📖 Learn more: Gridap.Io, Gridap.Visualization

Extended Ecosystem

Gridap's capabilities are greatly extended through companion packages!

📖 Learn more: Gridap ecosystem

Performance mode

Internally, Gridap has many checks to ensure errors are caught early. These are provided through the Gridap.Helpers.@check macro, which by default is equivalent to Julia's @assert. These checks can however be completely deactivated by through Gridap.Helpers.set_execution_mode. Note this will recompile the code, so you have to restart Julia after changing the preference.

GridapModule

Gridap, grid-based approximation of PDEs in the Julia programming language

This module provides rich set of tools for the numerical solution of PDE, mainly based on finite element methods.

The module is structured in the following sub-modules:

Exported names

AffineFEOperator, BDM, BackslashSolver, BackwardEuler, Boundary, BoundaryTriangulation, Broadcasting, Bubble, ButcherTableau, CartesianDiscreteModel, CartesianGrid, CellField, CellQuadrature, CellState, ConstantFESpace, DIV, DiracDelta, DiscreteModel, DiscreteModelFromFile, DomainStyle, FEFunction, FEOperator, FESolver, FESpace, FiniteElements, ForwardEuler, GeneralizedAlpha1, GridapType, HEX, HEX8, Interface, InterfaceTriangulation, Interior, LUSolver, Lagrangian, LinearFESolver, Measure, MidPoint, ModalC0, MultiFieldFESpace, NLSolver, Nedelec, Operation, PYRAMID, PhysicalDomain, Point, Polytope, QUAD, QUAD4, RaviartThomas, ReferenceDomain, ReferenceFE, Reindex, RungeKutta, SEG2, SEGMENT, Skeleton, SkeletonTriangulation, SparseMatrixAssembler, TET, TET4, TRI, TRI3, TensorValue, TestFESpace, ThetaMethod, TransientFEOperator, TransientIMEXFEOperator, TransientLinearFEOperator, TransientMultiFieldFESpace, TransientQuasilinearFEOperator, TransientSemilinearFEOperator, TransientTrialFESpace, TrialFESpace, Triangulation, VERTEX, VERTEX1, VectorValue, WEDGE, add_tag!, add_tag_from_tags!, array_cache, assemble_matrix, assemble_matrix_and_vector, assemble_vector, available_tableaus, bdm, bubble, createpvd, createvtk, cross, curl, det, diagonal_tensor, divergence, dot, evaluate, evaluate!, get_active_model, get_array, get_background_model, get_cell_coordinates, get_cell_dof_ids, get_cell_dof_values, get_cell_map, get_cell_measure, get_cell_points, get_cell_ref_coordinates, get_dirichlet_dof_ids, get_dirichlet_dof_values, get_dirichlet_values, get_face_labeling, get_fe_basis, get_free_dof_ids, get_free_dof_values, get_free_values, get_glue, get_grid, get_matrix, get_normal_vector, get_physical_coordinate, get_tangent_vector, get_trial_fe_basis, get_triangulation, get_vector, getindex!, gradient, hessian, inner, integrate, interpolate, interpolate_dirichlet, interpolate_everywhere, inv, is_P, is_Q, is_S, is_first_order, is_n_cube, is_simplex, jacobian, jump, lagrangian, laplacian, lazy_map, mean, modalC0, modal_lagrangian, modal_serendipity, move_contributions, nedelec, nedelec1, nedelec2, norm, num_cell_dims, num_cells, num_components, num_dims, num_dirichlet_dofs, num_dirichlet_tags, num_edges, num_entities, num_faces, num_facets, num_fields, num_free_dofs, num_indep_components, num_point_dims, num_tags, num_vertices, numerical_setup, numerical_setup!, outer, print_op_tree, raviart_thomas, savepvd, simplexify, solve, solve!, symbolic_setup, symmetric_gradient, tr, update_state!, writevtk, zero_initial_guess, ×, Δ, ε, ∂t, ∂tt, , ∇∇, , , , , ,

source