예제 #1
0
ElemAssembly& RBAssemblyExpansion::get_output_assembly(unsigned int output_index,
                                                       unsigned int q_l)
{
  if( (output_index >= get_n_outputs()) || (q_l >= get_n_output_terms(output_index)) )
    libmesh_error_msg("Error: We must have output_index < n_outputs and " \
                      << "q_l < get_n_output_terms(output_index) in get_output_assembly.");

  return *_output_assembly_vector[output_index][q_l];
}
예제 #2
0
void RBAssemblyExpansion::perform_output_boundary_assembly(unsigned int output_index,
                                                           unsigned int q_l,
                                                           FEMContext& context)
{
  if( (output_index >= get_n_outputs()) || (q_l >= get_n_output_terms(output_index)) )
    libmesh_error_msg("Error: We must have output_index < n_outputs and " \
                      << "q_l < get_n_output_terms(output_index) in perform_output_boundary_assembly.");

  libmesh_assert(_output_assembly_vector[output_index][q_l]);

  return _output_assembly_vector[output_index][q_l]->boundary_assembly(context);
}
예제 #3
0
Number RBThetaExpansion::eval_output_theta(unsigned int output_index,
                                           unsigned int q_l,
                                           const RBParameters & mu)
{
  if ((output_index >= get_n_outputs()) || (q_l >= get_n_output_terms(output_index)))
    libmesh_error_msg("Error: We must have output_index < n_outputs and " \
                      << "q_l < get_n_output_terms(output_index) in eval_output_theta.");

  libmesh_assert(_output_theta_vector[output_index][q_l]);

  return _output_theta_vector[output_index][q_l]->evaluate( mu );
}