*************** Finite Elements *************** .. Copyright (C) Dragan Nikolic DAE Tools is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation. DAE Tools is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with the DAE Tools software; if not, see . Base Classes ============ .. py:module:: pyCore .. autosummary:: :nosignatures: daeFiniteElementModel daeFiniteElementEquation daeFiniteElementVariableInfo daeFiniteElementObjectInfo daeFiniteElementObject_t .. autoclass:: pyCore.daeFiniteElementModel :no-members: :no-undoc-members: .. automethod:: __init__ .. autoclass:: pyCore.daeFiniteElementModel :members: :undoc-members: .. autoclass:: pyCore.daeFiniteElementEquation :members: :undoc-members: .. autoclass:: pyCore.daeFiniteElementVariableInfo :members: :undoc-members: .. autoclass:: pyCore.daeFiniteElementObjectInfo :members: :undoc-members: .. autoclass:: pyCore.daeFiniteElementObject_t :members: :undoc-members: deal.II Main FE Classes ======================= .. py:module:: solvers.deal_II.pyDealII .. py:currentmodule:: pyDealII These classes are instantiated by the users and used to specify: - Information about Degrees of Freedom (DOFs) including the Finite Element space for each DOF (dealiiFiniteElementDOF_nD class) - Weak form expressions for cells and faces (including boundaries) (dealiiFiniteElementWeakForm_nD class) - Information about the mesh, quadrature rules, DOFs and weak forms (dealiiFiniteElementSystem_1D class) - Data reporter that stores the results in .vtk format in the specified directory (dealIIDataReporter class) Since it is not possible to use deal.II template classes in Python, separate classes are provided for three spatial dimensions. .. autosummary:: :nosignatures: dealiiFiniteElementDOF_1D dealiiFiniteElementDOF_2D dealiiFiniteElementDOF_3D dealiiFiniteElementWeakForm_1D dealiiFiniteElementWeakForm_2D dealiiFiniteElementWeakForm_3D dealiiFiniteElementSystem_1D dealiiFiniteElementSystem_2D dealiiFiniteElementSystem_3D dealIIDataReporter .. autoclass:: pyDealII.dealiiFiniteElementDOF_1D :members: :undoc-members: .. automethod:: __init__ .. autoclass:: pyDealII.dealiiFiniteElementDOF_2D :members: :undoc-members: .. automethod:: __init__ .. autoclass:: pyDealII.dealiiFiniteElementDOF_3D :members: :undoc-members: .. automethod:: __init__ .. autoclass:: pyDealII.dealiiFiniteElementWeakForm_1D :members: :undoc-members: .. automethod:: __init__ .. autoclass:: pyDealII.dealiiFiniteElementWeakForm_2D :members: :undoc-members: .. automethod:: __init__ .. autoclass:: pyDealII.dealiiFiniteElementWeakForm_3D :members: :undoc-members: .. automethod:: __init__ .. autoclass:: pyDealII.dealiiFiniteElementSystem_1D :no-undoc-members: :no-members: .. automethod:: __init__ .. autoclass:: pyDealII.dealiiFiniteElementSystem_2D :no-undoc-members: :no-members: .. automethod:: __init__ .. autoclass:: pyDealII.dealiiFiniteElementSystem_3D :no-undoc-members: :no-members: .. automethod:: __init__ .. autoclass:: pyDealII.dealIIDataReporter :no-undoc-members: :no-members: deal.II Finite Elements ======================= .. autosummary:: :nosignatures: FiniteElement_1D FiniteElement_2D FiniteElement_3D FE_Q_1D FE_Q_2D FE_Q_3D FE_Bernstein_1D FE_Bernstein_2D FE_Bernstein_3D FE_RaviartThomas_1D FE_RaviartThomas_2D FE_RaviartThomas_3D FE_DGRaviartThomas_1D FE_DGRaviartThomas_2D FE_DGRaviartThomas_3D FE_Nedelec_1D FE_Nedelec_2D FE_Nedelec_3D FE_DGNedelec_1D FE_DGNedelec_2D FE_DGNedelec_3D FE_BDM_1D FE_BDM_2D FE_BDM_3D FE_DGBDM_1D FE_DGBDM_2D FE_DGBDM_3D FE_ABF_1D FE_ABF_2D FE_ABF_3D FE_DGQ_1D FE_DGQ_2D FE_DGQ_3D FE_DGP_1D FE_DGP_2D FE_DGP_3D .. autoclass:: FiniteElement_1D .. autoclass:: FiniteElement_2D .. autoclass:: FiniteElement_3D .. autoclass:: FE_Q_1D .. automethod:: __init__ .. autoclass:: FE_Q_2D .. automethod:: __init__ .. autoclass:: FE_Q_3D .. automethod:: __init__ .. autoclass:: FE_Bernstein_1D .. automethod:: __init__ .. autoclass:: FE_Bernstein_2D .. automethod:: __init__ .. autoclass:: FE_Bernstein_3D .. automethod:: __init__ .. autoclass:: FE_RaviartThomas_1D .. automethod:: __init__ .. autoclass:: FE_RaviartThomas_2D .. automethod:: __init__ .. autoclass:: FE_RaviartThomas_3D .. automethod:: __init__ .. autoclass:: FE_DGRaviartThomas_1D .. automethod:: __init__ .. autoclass:: FE_DGRaviartThomas_2D .. automethod:: __init__ .. autoclass:: FE_DGRaviartThomas_3D .. automethod:: __init__ .. autoclass:: FE_Nedelec_1D .. automethod:: __init__ .. autoclass:: FE_Nedelec_2D .. automethod:: __init__ .. autoclass:: FE_Nedelec_3D .. automethod:: __init__ .. autoclass:: FE_DGNedelec_1D .. automethod:: __init__ .. autoclass:: FE_DGNedelec_2D .. automethod:: __init__ .. autoclass:: FE_DGNedelec_3D .. automethod:: __init__ .. autoclass:: FE_BDM_1D .. automethod:: __init__ .. autoclass:: FE_BDM_2D .. automethod:: __init__ .. autoclass:: FE_BDM_3D .. automethod:: __init__ .. autoclass:: FE_DGBDM_1D .. automethod:: __init__ .. autoclass:: FE_DGBDM_2D .. automethod:: __init__ .. autoclass:: FE_DGBDM_3D .. automethod:: __init__ .. autoclass:: FE_ABF_1D .. automethod:: __init__ .. autoclass:: FE_ABF_2D .. automethod:: __init__ .. autoclass:: FE_ABF_3D .. automethod:: __init__ .. autoclass:: FE_DGQ_1D .. automethod:: __init__ .. autoclass:: FE_DGQ_2D .. automethod:: __init__ .. autoclass:: FE_DGQ_3D .. automethod:: __init__ .. autoclass:: FE_DGP_1D .. automethod:: __init__ .. autoclass:: FE_DGP_2D .. automethod:: __init__ .. autoclass:: FE_DGP_3D .. automethod:: __init__ deal.II Quadrature Rules ======================== .. autosummary:: :nosignatures: Quadrature_0D Quadrature_1D Quadrature_2D Quadrature_3D QGauss_0D QGauss_1D QGauss_2D QGauss_3D QGaussLobatto_0D QGaussLobatto_1D QGaussLobatto_2D QGaussLobatto_3D QMidpoint_1D QMidpoint_2D QMidpoint_3D QSimpson_1D QSimpson_2D QSimpson_3D QTrapez_1D QTrapez_2D QTrapez_3D QMilne_1D QMilne_2D QMilne_3D QWeddle_1D QWeddle_2D QWeddle_3D QGaussLog_1D QGaussLogR_1D QGaussOneOverR_2D QGaussChebyshev_1D QGaussChebyshev_2D QGaussChebyshev_3D QGaussLobattoChebyshev_1D QGaussLobattoChebyshev_2D QGaussLobattoChebyshev_3D .. autoclass:: pyDealII.Quadrature_0D .. autoclass:: pyDealII.Quadrature_1D .. autoclass:: pyDealII.Quadrature_2D .. autoclass:: pyDealII.Quadrature_3D .. autoclass:: pyDealII.QGauss_0D .. automethod:: __init__ .. autoclass:: pyDealII.QGauss_1D .. automethod:: __init__ .. autoclass:: pyDealII.QGauss_2D .. automethod:: __init__ .. autoclass:: pyDealII.QGauss_3D .. automethod:: __init__ .. autoclass:: pyDealII.QGaussLobatto_0D .. automethod:: __init__ .. autoclass:: pyDealII.QGaussLobatto_1D .. automethod:: __init__ .. autoclass:: pyDealII.QGaussLobatto_2D .. automethod:: __init__ .. autoclass:: pyDealII.QGaussLobatto_3D .. automethod:: __init__ .. autoclass:: pyDealII.QMidpoint_1D .. automethod:: __init__ .. autoclass:: pyDealII.QMidpoint_2D .. automethod:: __init__ .. autoclass:: pyDealII.QMidpoint_3D .. automethod:: __init__ .. autoclass:: pyDealII.QSimpson_1D .. automethod:: __init__ .. autoclass:: pyDealII.QSimpson_2D .. automethod:: __init__ .. autoclass:: pyDealII.QSimpson_3D .. automethod:: __init__ .. autoclass:: pyDealII.QTrapez_1D .. automethod:: __init__ .. autoclass:: pyDealII.QTrapez_2D .. automethod:: __init__ .. autoclass:: pyDealII.QTrapez_3D .. automethod:: __init__ .. autoclass:: pyDealII.QMilne_1D .. automethod:: __init__ .. autoclass:: pyDealII.QMilne_2D .. automethod:: __init__ .. autoclass:: pyDealII.QMilne_3D .. automethod:: __init__ .. autoclass:: pyDealII.QWeddle_1D .. automethod:: __init__ .. autoclass:: pyDealII.QWeddle_2D .. automethod:: __init__ .. autoclass:: pyDealII.QWeddle_3D .. automethod:: __init__ .. autoclass:: pyDealII.QGaussLog_1D .. automethod:: __init__ .. autoclass:: pyDealII.QGaussLogR_1D .. automethod:: __init__ .. autoclass:: pyDealII.QGaussOneOverR_2D .. automethod:: __init__ .. autoclass:: pyDealII.QGaussChebyshev_1D .. automethod:: __init__ .. autoclass:: pyDealII.QGaussChebyshev_2D .. automethod:: __init__ .. autoclass:: pyDealII.QGaussChebyshev_3D .. automethod:: __init__ .. autoclass:: pyDealII.QGaussLobattoChebyshev_1D .. automethod:: __init__ .. autoclass:: pyDealII.QGaussLobattoChebyshev_2D .. automethod:: __init__ .. autoclass:: pyDealII.QGaussLobattoChebyshev_3D .. automethod:: __init__ Functions for Specification of Weak Forms ========================================= .. autosummary:: :nosignatures: feExpression_1D feExpression_2D feExpression_3D constant_1D constant_2D constant_3D phi_1D phi_2D phi_3D dphi_1D dphi_2D dphi_3D d2phi_1D d2phi_2D d2phi_3D JxW_1D JxW_2D JxW_3D xyz_1D xyz_2D xyz_3D normal_1D normal_2D normal_3D function_value_1D function_value_2D function_value_3D function_gradient_1D function_gradient_2D function_gradient_3D function_adouble_value_1D function_adouble_value_1D function_adouble_value_1D function_adouble_gradient_1D function_adouble_gradient_1D function_adouble_gradient_1D tensor1_function_value_1D tensor1_function_value_1D tensor1_function_value_1D tensor2_function_value_1D tensor2_function_value_1D tensor2_function_value_1D tensor1_function_gradient_1D tensor1_function_gradient_1D tensor1_function_gradient_1D tensor2_function_gradient_1D tensor2_function_gradient_1D tensor2_function_gradient_1D phi_vector_1D phi_vector_2D phi_vector_3D dphi_vector_1D dphi_vector_2D dphi_vector_3D d2phi_vector_1D d2phi_vector_2D d2phi_vector_3D div_phi_1D div_phi_2D div_phi_3D dof_1D dof_2D dof_3D dof_approximation_1D dof_approximation_2D dof_approximation_3D dof_gradient_approximation_1D dof_gradient_approximation_2D dof_gradient_approximation_3D dof_hessian_approximation_1D dof_hessian_approximation_2D dof_hessian_approximation_3D vector_dof_approximation_1D vector_dof_approximation_2D vector_dof_approximation_3D vector_dof_gradient_approximation_1D vector_dof_gradient_approximation_2D vector_dof_gradient_approximation_3D adouble_1D adouble_2D adouble_3D tensor1_1D tensor1_2D tensor1_3D tensor2_1D tensor2_2D tensor2_3D tensor3_1D tensor3_2D tensor3_3D adouble_tensor1_1D adouble_tensor1_2D adouble_tensor1_3D adouble_tensor2_1D adouble_tensor2_2D adouble_tensor2_3D adouble_tensor3_1D adouble_tensor3_2D adouble_tensor3_3D .. autoclass:: pyDealII.feExpression_1D .. autoclass:: pyDealII.feExpression_2D .. autoclass:: pyDealII.feExpression_3D .. autofunction:: constant_1D .. autofunction:: constant_2D .. autofunction:: constant_3D .. autofunction:: phi_1D .. autofunction:: phi_2D .. autofunction:: phi_3D .. autofunction:: dphi_1D .. autofunction:: dphi_2D .. autofunction:: dphi_3D .. autofunction:: d2phi_1D .. autofunction:: d2phi_2D .. autofunction:: d2phi_3D .. autofunction:: JxW_1D .. autofunction:: JxW_2D .. autofunction:: JxW_3D .. autofunction:: xyz_1D .. autofunction:: xyz_2D .. autofunction:: xyz_3D .. autofunction:: normal_1D .. autofunction:: normal_2D .. autofunction:: normal_3D .. autofunction:: function_value_1D .. autofunction:: function_value_2D .. autofunction:: function_value_3D .. autofunction:: function_gradient_1D .. autofunction:: function_gradient_2D .. autofunction:: function_gradient_3D .. autofunction:: function_adouble_value_1D .. autofunction:: function_adouble_value_1D .. autofunction:: function_adouble_value_1D .. autofunction:: function_adouble_gradient_1D .. autofunction:: function_adouble_gradient_1D .. autofunction:: function_adouble_gradient_1D .. autofunction:: tensor1_function_value_1D .. autofunction:: tensor1_function_value_1D .. autofunction:: tensor1_function_value_1D .. autofunction:: tensor2_function_value_1D .. autofunction:: tensor2_function_value_1D .. autofunction:: tensor2_function_value_1D .. autofunction:: tensor1_function_gradient_1D .. autofunction:: tensor1_function_gradient_1D .. autofunction:: tensor1_function_gradient_1D .. autofunction:: tensor2_function_gradient_1D .. autofunction:: tensor2_function_gradient_1D .. autofunction:: tensor2_function_gradient_1D .. autofunction:: phi_vector_1D .. autofunction:: phi_vector_2D .. autofunction:: phi_vector_3D .. autofunction:: dphi_vector_1D .. autofunction:: dphi_vector_2D .. autofunction:: dphi_vector_3D .. autofunction:: d2phi_vector_1D .. autofunction:: d2phi_vector_2D .. autofunction:: d2phi_vector_3D .. autofunction:: div_phi_1D .. autofunction:: div_phi_2D .. autofunction:: div_phi_3D .. autofunction:: dof_1D .. autofunction:: dof_2D .. autofunction:: dof_3D .. autofunction:: dof_approximation_1D .. autofunction:: dof_approximation_2D .. autofunction:: dof_approximation_3D .. autofunction:: dof_gradient_approximation_1D .. autofunction:: dof_gradient_approximation_2D .. autofunction:: dof_gradient_approximation_3D .. autofunction:: dof_hessian_approximation_1D .. autofunction:: dof_hessian_approximation_2D .. autofunction:: dof_hessian_approximation_3D .. autofunction:: vector_dof_approximation_1D .. autofunction:: vector_dof_approximation_2D .. autofunction:: vector_dof_approximation_3D .. autofunction:: vector_dof_gradient_approximation_1D .. autofunction:: vector_dof_gradient_approximation_2D .. autofunction:: vector_dof_gradient_approximation_3D .. autofunction:: adouble_1D .. autofunction:: adouble_2D .. autofunction:: adouble_3D .. autofunction:: tensor1_1D .. autofunction:: tensor1_2D .. autofunction:: tensor1_3D .. autofunction:: tensor2_1D .. autofunction:: tensor2_2D .. autofunction:: tensor2_3D .. autofunction:: tensor3_1D .. autofunction:: tensor3_2D .. autofunction:: tensor3_3D .. autofunction:: adouble_tensor1_1D .. autofunction:: adouble_tensor1_2D .. autofunction:: adouble_tensor1_3D .. autofunction:: adouble_tensor2_1D .. autofunction:: adouble_tensor2_2D .. autofunction:: adouble_tensor2_3D .. autofunction:: adouble_tensor3_1D .. autofunction:: adouble_tensor3_2D .. autofunction:: adouble_tensor3_3D deal.II Function classes ============================= .. autosummary:: :nosignatures: Function_1D Function_2D Function_3D adoubleFunction_1D adoubleFunction_2D adoubleFunction_3D ConstantFunction_1D ConstantFunction_2D ConstantFunction_3D adoubleConstantFunction_1D adoubleConstantFunction_2D adoubleConstantFunction_3D TensorFunction_1_1D TensorFunction_1_2D TensorFunction_1_3D TensorFunction_2_1D TensorFunction_2_2D TensorFunction_2_3D adoubleTensorFunction_1_1D adoubleTensorFunction_1_2D adoubleTensorFunction_1_3D adoubleTensorFunction_2_1D adoubleTensorFunction_2_2D adoubleTensorFunction_2_3D .. autoclass:: pyDealII.Function_1D .. autoclass:: pyDealII.Function_2D .. autoclass:: pyDealII.Function_3D .. autoclass:: pyDealII.adoubleFunction_1D .. autoclass:: pyDealII.adoubleFunction_2D .. autoclass:: pyDealII.adoubleFunction_3D .. autoclass:: pyDealII.ConstantFunction_1D .. autoclass:: pyDealII.ConstantFunction_2D .. autoclass:: pyDealII.ConstantFunction_3D .. autoclass:: pyDealII.adoubleConstantFunction_1D .. autoclass:: pyDealII.adoubleConstantFunction_2D .. autoclass:: pyDealII.adoubleConstantFunction_3D .. autoclass:: pyDealII.TensorFunction_1_1D .. autoclass:: pyDealII.TensorFunction_1_2D .. autoclass:: pyDealII.TensorFunction_1_3D .. autoclass:: pyDealII.TensorFunction_2_1D .. autoclass:: pyDealII.TensorFunction_2_2D .. autoclass:: pyDealII.TensorFunction_2_3D .. autoclass:: pyDealII.adoubleTensorFunction_1_1D .. autoclass:: pyDealII.adoubleTensorFunction_1_2D .. autoclass:: pyDealII.adoubleTensorFunction_1_3D .. autoclass:: pyDealII.adoubleTensorFunction_2_1D .. autoclass:: pyDealII.adoubleTensorFunction_2_2D .. autoclass:: pyDealII.adoubleTensorFunction_2_3D Enumerations and Constants ========================== .. autosummary:: :nosignatures: fe_i fe_j fe_q .. data:: pyDealII.fe_i .. data:: pyDealII.fe_j .. data:: pyDealII.fe_q Auxiliary Classes ================= .. autosummary:: :nosignatures: Tensor_1_1D Tensor_1_2D Tensor_1_3D Tensor_2_1D Tensor_2_2D Tensor_2_3D adoubleTensor_1_1D adoubleTensor_1_2D adoubleTensor_1_3D adoubleTensor_2_1D adoubleTensor_2_2D adoubleTensor_2_3D Point_1D Point_2D Point_3D Vector FullMatrix SparseMatrix .. Not really needed in python feRuntimeNumber_1D feRuntimeNumber_2D feRuntimeNumber_3D .. autoclass:: pyDealII.Tensor_1_1D .. autoclass:: pyDealII.Tensor_1_2D .. autoclass:: pyDealII.Tensor_1_3D .. autoclass:: pyDealII.Tensor_2_1D .. autoclass:: pyDealII.Tensor_2_2D .. autoclass:: pyDealII.Tensor_2_3D .. autoclass:: pyDealII.adoubleTensor_1_1D .. autoclass:: pyDealII.adoubleTensor_1_2D .. autoclass:: pyDealII.adoubleTensor_1_3D .. autoclass:: pyDealII.adoubleTensor_2_1D .. autoclass:: pyDealII.adoubleTensor_2_2D .. autoclass:: pyDealII.adoubleTensor_2_3D .. autoclass:: pyDealII.Point_1D .. autoclass:: pyDealII.Point_2D .. autoclass:: pyDealII.Point_3D .. autoclass:: pyDealII.Vector .. autoclass:: pyDealII.FullMatrix .. autoclass:: pyDealII.SparseMatrix .. Not really needed in python .. autoclass:: pyDealII.feRuntimeNumber_1D .. autoclass:: pyDealII.feRuntimeNumber_2D .. autoclass:: pyDealII.feRuntimeNumber_3D