29 #include "grins_config.h"
33 #include "libmesh/getpot.h"
34 #include "libmesh/quadrature.h"
35 #include "libmesh/boundary_info.h"
36 #include "libmesh/fem_system.h"
45 if( !input.have_variable(
"Physics/"+physics_name+
"/A") )
47 std::cerr <<
"Error: Must input area for "+physics_name+
"." << std::endl
48 <<
" Please set Physics/"+physics_name+
"/A." << std::endl;
53 (
_A, input,
"Physics/"+physics_name+
"/A",
_A );
55 if( !input.have_variable(
"Physics/"+physics_name+
"/rho") )
57 std::cerr <<
"Error: Must input density for "+physics_name+
"." << std::endl
58 <<
" Please set Physics/"+physics_name+
"/rho." << std::endl;
63 (
_rho, input,
"Physics/"+physics_name+
"/rho",
_rho );
65 int num_gravity = input.vector_variable_size(
"Physics/"+physics_name+
"/gravity");
68 std::cerr <<
"Error: Must input three values for "+physics_name+
" gravity." << std::endl
69 <<
" Please set Physics/"+physics_name+
"/gravity." << std::endl;
72 for(
int i = 0; i < num_gravity; i++ )
74 _gravity(i)=( input(
"Physics/"+physics_name+
"/gravity", 0.0 , i ) );
90 const unsigned int n_u_dofs = context.get_dof_indices(
_disp_vars.
u_var()).size();
92 const std::vector<libMesh::Real> &JxW = this->
get_fe(context)->get_JxW();
94 const std::vector<std::vector<libMesh::Real> >& u_phi = this->
get_fe(context)->get_phi();
96 libMesh::DenseSubVector<libMesh::Number> &Fu = context.get_elem_residual(
_disp_vars.
u_var());
97 libMesh::DenseSubVector<libMesh::Number> &Fv = context.get_elem_residual(
_disp_vars.
v_var());
98 libMesh::DenseSubVector<libMesh::Number> &Fw = context.get_elem_residual(
_disp_vars.
w_var());
100 unsigned int n_qpoints = context.get_element_qrule().n_points();
102 for (
unsigned int qp=0; qp != n_qpoints; qp++)
104 libMesh::Real jac = JxW[qp];
106 for (
unsigned int i=0; i != n_u_dofs; i++)
virtual void set_parameter(libMesh::Number ¶m_variable, const GetPot &input, const std::string ¶m_name, libMesh::Number param_default)
Each subclass can simultaneously read a parameter value from.
virtual ~ElasticCableConstantGravity()
VariableIndex v_var() const
virtual void element_time_derivative(bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
Time dependent part(s) of physics for element interiors.
SolidMechanicsFEVariables _disp_vars
ElasticCableConstantGravity()
VariableIndex w_var() const
const libMesh::FEGenericBase< libMesh::Real > * get_fe(const AssemblyContext &context)
VariableIndex u_var() const