void ConcentricCylinderProfile::operator()( const libMesh::Point& p, 
					      const libMesh::Real time, 
					      libMesh::DenseVector<libMesh::Number> &output )
  {
    for( unsigned int i = 0; i < output.size(); i++ )
      {
	output(i) = (*this)(p, time);
      }
    return;
  }
  void PostProcessedQuantities<NumericType>::operator()( const libMesh::FEMContext& context, const libMesh::Point& p,
							 const libMesh::Real time,
							 libMesh::DenseVector<NumericType>& output )
  {
    for( unsigned int i = 0; i != output.size(); i++ )
      {
	output(i) = this->component(context,i,p,time);
      }
    return;
  }
Ejemplo n.º 3
0
  void GRINS::GaussianXYProfile::operator()( const libMesh::Point &p, 
					     const libMesh::Real time, 
					     libMesh::DenseVector<libMesh::Number> &output )
  {
    for( unsigned int i = 0; i < output.size(); i++ )
      {
	output(i) = (*this)(p, time);
      }
    return;
  }
void
MAST::StructuralElementBase::transform_to_local_system(const libMesh::DenseVector<ValType>& global_vec,
                                                        libMesh::DenseVector<ValType>& local_vec) const {
    libmesh_assert_equal_to( local_vec.size(),  global_vec.size());
    
    const unsigned int n_dofs = _fe->n_shape_functions();
    local_vec.zero();
    DenseRealMatrix mat;
    mat.resize(6*n_dofs, 6*n_dofs);
    
    const DenseRealMatrix& Tmat = _transformation_matrix();
    // now initialize the global T matrix
    for (unsigned int i=0; i<n_dofs; i++)
        for (unsigned int j=0; j<3; j++)
            for (unsigned int k=0; k<3; k++) {
                mat(j*n_dofs+i, k*n_dofs+i) = Tmat(j,k); // for u,v,w
                mat((j+3)*n_dofs+i, (k+3)*n_dofs+i) = Tmat(j,k); // for tx,ty,tz
            }
    
    // left multiply with T^T
    mat.vector_mult_transpose(local_vec, global_vec);
}