MAST
|
This element implements the Galerkin discretization of the heat conduction problem
with the flux provided on the boundary with Neumann boundary conditions. More...
#include <heat_conduction_elem_base.h>
Public Member Functions | |
HeatConductionElementBase (MAST::SystemInitialization &sys, MAST::AssemblyBase &assembly, const MAST::GeomElem &elem, const MAST::ElementPropertyCardBase &p) | |
Constructor. More... | |
virtual | ~HeatConductionElementBase () |
const MAST::ElementPropertyCardBase & | elem_property () |
returns a constant reference to the finite element object More... | |
virtual void | internal_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac) |
internal force contribution to system residual More... | |
virtual void | velocity_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xdot, RealMatrixX &jac) |
inertial force contribution to system residual More... | |
void | side_external_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac, std::multimap< libMesh::boundary_id_type, MAST::BoundaryConditionBase * > &bc) |
side external force contribution to system residual More... | |
void | volume_external_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac, std::multimap< libMesh::subdomain_id_type, MAST::BoundaryConditionBase * > &bc) |
volume external force contribution to system residual More... | |
virtual void | internal_residual_sensitivity (const MAST::FunctionBase &p, RealVectorX &f) |
sensitivity of the internal force contribution to system residual More... | |
virtual void | internal_residual_boundary_velocity (const MAST::FunctionBase &p, RealVectorX &f, const unsigned int s, const MAST::FieldFunction< RealVectorX > &vel_f) |
sensitivity of the internal force contribution to system residual More... | |
virtual void | velocity_residual_sensitivity (const MAST::FunctionBase &p, RealVectorX &f) |
sensitivity of the damping force contribution to system residual More... | |
virtual void | velocity_residual_boundary_velocity (const MAST::FunctionBase &p, RealVectorX &f, const unsigned int s, const MAST::FieldFunction< RealVectorX > &vel_f) |
sensitivity of the internal force contribution to system residual More... | |
void | side_external_residual_sensitivity (const MAST::FunctionBase &p, RealVectorX &f, std::multimap< libMesh::boundary_id_type, MAST::BoundaryConditionBase * > &bc) |
sensitivity of the side external force contribution to system residual More... | |
void | volume_external_residual_sensitivity (const MAST::FunctionBase &p, RealVectorX &f, std::multimap< libMesh::subdomain_id_type, MAST::BoundaryConditionBase * > &bc) |
sensitivity of the volume external force contribution to system residual More... | |
void | volume_external_residual_boundary_velocity (const MAST::FunctionBase &p, RealVectorX &f, const unsigned int s, const MAST::FieldFunction< RealVectorX > &vel_f, std::multimap< libMesh::subdomain_id_type, MAST::BoundaryConditionBase * > &bc) |
boundary velocity contribution of volume external force. More... | |
Public Member Functions inherited from MAST::ElementBase | |
ElementBase (MAST::SystemInitialization &sys, MAST::AssemblyBase &assembly, const MAST::GeomElem &elem) | |
The default constructor. More... | |
virtual | ~ElementBase () |
Default virtual destructor. More... | |
MAST::SystemInitialization & | system_initialization () |
MAST::AssemblyBase & | assembly () |
MAST::NonlinearSystem & | system () |
const MAST::GeomElem & | elem () const |
const RealVectorX & | sol (bool if_sens=false) const |
virtual void | set_solution (const RealVectorX &vec, bool if_sens=false) |
stores vec as solution for element level calculations, or its sensitivity if if_sens is true. More... | |
virtual void | set_perturbed_solution (const RealVectorX &vec, bool if_sens=false) |
This provides the perturbed solution (or its sensitivity if if_sens is true.) for linearized analysis. More... | |
virtual void | set_complex_solution (const ComplexVectorX &vec, bool if_sens=false) |
This provides the complex solution (or its sensitivity if if_sens is true.) for frequecy-domain analysis. More... | |
virtual void | set_velocity (const RealVectorX &vec, bool if_sens=false) |
stores vec as velocity for element level calculations, or its sensitivity if if_sens is true. More... | |
virtual void | set_perturbed_velocity (const RealVectorX &vec, bool if_sens=false) |
stores vec as perturbed velocity for element level calculations, or its sensitivity if if_sens is true. More... | |
virtual void | set_acceleration (const RealVectorX &vec, bool if_sens=false) |
stores vec as acceleration for element level calculations, or its sensitivity if if_sens is true. More... | |
virtual void | set_perturbed_acceleration (const RealVectorX &vec, bool if_sens=false) |
stores vec as perturbed acceleration for element level calculations, or its sensitivity if if_sens is true. More... | |
void | attach_active_solution_function (MAST::FunctionBase &f) |
Attaches the function that represents the system solution. More... | |
void | detach_active_solution_function () |
Detaches the function object that may have been attached to the element. More... | |
Protected Member Functions | |
virtual void | surface_flux_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac, const unsigned int s, MAST::BoundaryConditionBase &bc) |
Calculates the residual vector and Jacobian due to surface flux on element side s . More... | |
virtual void | surface_flux_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac, MAST::BoundaryConditionBase &bc) |
Calculates the residual vector sensitivity due to surface flux on element volumetric domain. More... | |
virtual void | surface_flux_residual_sensitivity (const MAST::FunctionBase &p, RealVectorX &f, const unsigned int s, MAST::BoundaryConditionBase &bc) |
Calculates the residual vector sensitivity and Jacobian due to surface flux on element side s . More... | |
virtual void | surface_flux_residual_sensitivity (const MAST::FunctionBase &p, RealVectorX &f, MAST::BoundaryConditionBase &bc) |
Calculates the residual vector and Jacobian due to surface flux on element volumetric domain. More... | |
virtual void | surface_flux_boundary_velocity (const MAST::FunctionBase &p, RealVectorX &f, const unsigned int s, const MAST::FieldFunction< RealVectorX > &vel_f, MAST::BoundaryConditionBase &bc) |
Calculates the residual vector and Jacobian due to surface flux on element volumetric domain. More... | |
virtual void | surface_convection_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac, const unsigned int s, MAST::BoundaryConditionBase &bc) |
Calculates the residual vector and Jacobian due to surface convection. More... | |
virtual void | surface_convection_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac, MAST::BoundaryConditionBase &bc) |
Calculates the residual vector and Jacobian due to surface convection on the element domain. More... | |
virtual void | surface_convection_residual_sensitivity (const MAST::FunctionBase &p, RealVectorX &f, const unsigned int s, MAST::BoundaryConditionBase &bc) |
Calculates the residual vector sensitivity and Jacobian due to surface convection. More... | |
virtual void | surface_convection_residual_sensitivity (const MAST::FunctionBase &p, RealVectorX &f, MAST::BoundaryConditionBase &bc) |
Calculates the residual vector sensitivity and Jacobian due to surface convection on element domain. More... | |
virtual void | surface_convection_boundary_velocity (const MAST::FunctionBase &p, RealVectorX &f, const unsigned int s, const MAST::FieldFunction< RealVectorX > &vel_f, MAST::BoundaryConditionBase &bc) |
Calculates the residual vector and Jacobian due to surface flux on element volumetric domain. More... | |
virtual void | surface_radiation_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac, const unsigned int s, MAST::BoundaryConditionBase &bc) |
Calculates the residual vector and Jacobian due to surface radiation flux on side s. More... | |
virtual void | surface_radiation_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac, MAST::BoundaryConditionBase &bc) |
Calculates the residual vector and Jacobian due to surface radiation flux on element domain. More... | |
virtual void | surface_radiation_residual_sensitivity (const MAST::FunctionBase &p, RealVectorX &f, const unsigned int s, MAST::BoundaryConditionBase &bc) |
Calculates the residual vector sensitivity and Jacobian due to surface radiation flux on element side. More... | |
virtual void | surface_radiation_residual_sensitivity (const MAST::FunctionBase &p, RealVectorX &f, MAST::BoundaryConditionBase &bc) |
Calculates the residual vector sensitivity and Jacobian due to surface radiation flux on element domain. More... | |
virtual void | surface_radiation_boundary_velocity (const MAST::FunctionBase &p, RealVectorX &f, const unsigned int s, const MAST::FieldFunction< RealVectorX > &vel_f, MAST::BoundaryConditionBase &bc) |
Calculates the residual vector and Jacobian due to surface flux on element volumetric domain. More... | |
virtual void | volume_heat_source_residual (bool request_jacobian, RealVectorX &f, RealMatrixX &jac, MAST::BoundaryConditionBase &bc) |
Calculates the residual vector and Jacobian due to volume heat source. More... | |
virtual void | volume_heat_source_residual_sensitivity (const MAST::FunctionBase &p, RealVectorX &f, MAST::BoundaryConditionBase &bc) |
Calculates the residual vector and Jacobian due to volume heat source. More... | |
virtual void | volume_heat_source_boundary_velocity (const MAST::FunctionBase &p, RealVectorX &f, const unsigned int s, const MAST::FieldFunction< RealVectorX > &vel_f, MAST::BoundaryConditionBase &bc) |
Calculates the residual vector and Jacobian due to volume heat source on element volumetric domain. More... | |
void | _initialize_mass_fem_operator (const unsigned int qp, const MAST::FEBase &fe, MAST::FEMOperatorMatrix &Bmat) |
When mass = false, initializes the FEM operator matrix to the shape functions as
. More... | |
void | _initialize_fem_gradient_operator (const unsigned int qp, const unsigned int dim, const MAST::FEBase &fe, std::vector< MAST::FEMOperatorMatrix > &dBmat) |
For mass = true, the FEM operator matrix is initilized to the weak form of the Laplacian
. More... | |
Protected Attributes | |
const MAST::ElementPropertyCardBase & | _property |
element property More... | |
Protected Attributes inherited from MAST::ElementBase | |
MAST::SystemInitialization & | _system |
SystemInitialization object associated with this element. More... | |
MAST::AssemblyBase & | _assembly |
Assembly object. More... | |
const MAST::GeomElem & | _elem |
geometric element for which the computations are performed More... | |
MAST::FunctionBase * | _active_sol_function |
pointer to the active solution mesh field function. More... | |
const Real & | _time |
time for which system is being assembled More... | |
RealVectorX | _sol |
local solution More... | |
RealVectorX | _sol_sens |
local solution sensitivity More... | |
ComplexVectorX | _complex_sol |
local solution used for frequency domain analysis More... | |
ComplexVectorX | _complex_sol_sens |
local solution used for frequency domain analysis More... | |
RealVectorX | _delta_sol |
local solution used for linearized analysis More... | |
RealVectorX | _delta_sol_sens |
local solution used for linearized analysis More... | |
RealVectorX | _vel |
local velocity More... | |
RealVectorX | _vel_sens |
local velocity More... | |
RealVectorX | _delta_vel |
local velocity More... | |
RealVectorX | _delta_vel_sens |
local velocity More... | |
RealVectorX | _accel |
local acceleration More... | |
RealVectorX | _accel_sens |
local acceleration More... | |
RealVectorX | _delta_accel |
local acceleration More... | |
RealVectorX | _delta_accel_sens |
local acceleration More... | |
This element implements the Galerkin discretization of the heat conduction problem
with the flux provided on the boundary with Neumann boundary conditions.
The discrete form is represented as
, where
, and
, where is the boundary normal surface flux on and is the volumetric heat generation.
Definition at line 53 of file heat_conduction_elem_base.h.
MAST::HeatConductionElementBase::HeatConductionElementBase | ( | MAST::SystemInitialization & | sys, |
MAST::AssemblyBase & | assembly, | ||
const MAST::GeomElem & | elem, | ||
const MAST::ElementPropertyCardBase & | p | ||
) |
Constructor.
Definition at line 36 of file heat_conduction_elem_base.cpp.
|
virtual |
Definition at line 47 of file heat_conduction_elem_base.cpp.
|
protected |
For mass
= true, the FEM operator matrix is initilized to the weak form of the Laplacian
.
Definition at line 1782 of file heat_conduction_elem_base.cpp.
|
protected |
When mass
= false, initializes the FEM operator matrix to the shape functions as
.
Definition at line 1759 of file heat_conduction_elem_base.cpp.
|
inline |
returns a constant reference to the finite element object
Definition at line 73 of file heat_conduction_elem_base.h.
|
virtual |
internal force contribution to system residual
Definition at line 55 of file heat_conduction_elem_base.cpp.
|
virtual |
sensitivity of the internal force contribution to system residual
Definition at line 602 of file heat_conduction_elem_base.cpp.
|
virtual |
sensitivity of the internal force contribution to system residual
Definition at line 534 of file heat_conduction_elem_base.cpp.
void MAST::HeatConductionElementBase::side_external_residual | ( | bool | request_jacobian, |
RealVectorX & | f, | ||
RealMatrixX & | jac, | ||
std::multimap< libMesh::boundary_id_type, MAST::BoundaryConditionBase * > & | bc | ||
) |
side external force contribution to system residual
Definition at line 230 of file heat_conduction_elem_base.cpp.
void MAST::HeatConductionElementBase::side_external_residual_sensitivity | ( | const MAST::FunctionBase & | p, |
RealVectorX & | f, | ||
std::multimap< libMesh::boundary_id_type, MAST::BoundaryConditionBase * > & | bc | ||
) |
sensitivity of the side external force contribution to system residual
Definition at line 349 of file heat_conduction_elem_base.cpp.
|
protectedvirtual |
Calculates the residual vector and Jacobian due to surface flux on element volumetric domain.
This is used only for 1D or 2D elements.
Definition at line 1252 of file heat_conduction_elem_base.cpp.
|
protectedvirtual |
Calculates the residual vector and Jacobian due to surface convection.
Definition at line 1028 of file heat_conduction_elem_base.cpp.
|
protectedvirtual |
Calculates the residual vector and Jacobian due to surface convection on the element domain.
This is relevant only for 1D and 2D elements.
Definition at line 1088 of file heat_conduction_elem_base.cpp.
|
protectedvirtual |
Calculates the residual vector sensitivity and Jacobian due to surface convection.
Definition at line 1144 of file heat_conduction_elem_base.cpp.
|
protectedvirtual |
Calculates the residual vector sensitivity and Jacobian due to surface convection on element domain.
This is relevant only for 1D and 2D elements.
Definition at line 1201 of file heat_conduction_elem_base.cpp.
|
protectedvirtual |
Calculates the residual vector and Jacobian due to surface flux on element volumetric domain.
This is used only for 1D or 2D elements.
Definition at line 971 of file heat_conduction_elem_base.cpp.
|
protectedvirtual |
Calculates the residual vector and Jacobian due to surface flux on element side s
.
Definition at line 812 of file heat_conduction_elem_base.cpp.
|
protectedvirtual |
Calculates the residual vector sensitivity due to surface flux on element volumetric domain.
This is used only for 2D or 3D elements.
Definition at line 855 of file heat_conduction_elem_base.cpp.
|
protectedvirtual |
Calculates the residual vector sensitivity and Jacobian due to surface flux on element side s
.
Definition at line 892 of file heat_conduction_elem_base.cpp.
|
protectedvirtual |
Calculates the residual vector and Jacobian due to surface flux on element volumetric domain.
This is used only for 1D or 2D elements.
Definition at line 936 of file heat_conduction_elem_base.cpp.
|
protectedvirtual |
Calculates the residual vector and Jacobian due to surface flux on element volumetric domain.
This is used only for 1D or 2D elements.
Definition at line 1547 of file heat_conduction_elem_base.cpp.
|
protectedvirtual |
Calculates the residual vector and Jacobian due to surface radiation flux on side s.
Definition at line 1323 of file heat_conduction_elem_base.cpp.
|
protectedvirtual |
Calculates the residual vector and Jacobian due to surface radiation flux on element domain.
Definition at line 1385 of file heat_conduction_elem_base.cpp.
|
protectedvirtual |
Calculates the residual vector sensitivity and Jacobian due to surface radiation flux on element side.
Definition at line 1443 of file heat_conduction_elem_base.cpp.
|
protectedvirtual |
Calculates the residual vector sensitivity and Jacobian due to surface radiation flux on element domain.
Definition at line 1500 of file heat_conduction_elem_base.cpp.
|
virtual |
inertial force contribution to system residual
Definition at line 157 of file heat_conduction_elem_base.cpp.
|
virtual |
sensitivity of the internal force contribution to system residual
Definition at line 741 of file heat_conduction_elem_base.cpp.
|
virtual |
sensitivity of the damping force contribution to system residual
Definition at line 689 of file heat_conduction_elem_base.cpp.
void MAST::HeatConductionElementBase::volume_external_residual | ( | bool | request_jacobian, |
RealVectorX & | f, | ||
RealMatrixX & | jac, | ||
std::multimap< libMesh::subdomain_id_type, MAST::BoundaryConditionBase * > & | bc | ||
) |
volume external force contribution to system residual
Definition at line 292 of file heat_conduction_elem_base.cpp.
void MAST::HeatConductionElementBase::volume_external_residual_boundary_velocity | ( | const MAST::FunctionBase & | p, |
RealVectorX & | f, | ||
const unsigned int | s, | ||
const MAST::FieldFunction< RealVectorX > & | vel_f, | ||
std::multimap< libMesh::subdomain_id_type, MAST::BoundaryConditionBase * > & | bc | ||
) |
boundary velocity contribution of volume external force.
Definition at line 466 of file heat_conduction_elem_base.cpp.
void MAST::HeatConductionElementBase::volume_external_residual_sensitivity | ( | const MAST::FunctionBase & | p, |
RealVectorX & | f, | ||
std::multimap< libMesh::subdomain_id_type, MAST::BoundaryConditionBase * > & | bc | ||
) |
sensitivity of the volume external force contribution to system residual
Definition at line 409 of file heat_conduction_elem_base.cpp.
|
protectedvirtual |
Calculates the residual vector and Jacobian due to volume heat source on element volumetric domain.
Definition at line 1699 of file heat_conduction_elem_base.cpp.
|
protectedvirtual |
Calculates the residual vector and Jacobian due to volume heat source.
Definition at line 1622 of file heat_conduction_elem_base.cpp.
|
protectedvirtual |
Calculates the residual vector and Jacobian due to volume heat source.
Definition at line 1661 of file heat_conduction_elem_base.cpp.
|
protected |
element property
Definition at line 388 of file heat_conduction_elem_base.h.