Exemple #1
0
static void ConstructTFD(double t, double h, Vector dp)
  {
  static Vector  temp = NullMatrix;
  static int     size;
  int            i;
    
  if (temp == NullMatrix) {
     size= problem.num_nodes * problem.num_dofs; 
     temp= CreateVector(size); 
  }
   
  if(t == 0.0)
    {
    AssembleTransientForce(0.0, temp);
    AssembleTransientForce(0.0+h/4, dp);
    for(i= 1; i<= size; i++)
      VectorData(dp)[i]= (VectorData(dp)[i] - VectorData(temp)[i])/(h/4);
    }
  else
    { 
    AssembleTransientForce(t-h/4, temp); 
    AssembleTransientForce(t+h/4, dp);
    for(i= 1; i<= size; i++)
      VectorData(dp)[i]= (VectorData(dp)[i] - VectorData(temp)[i])/(h/2);
    }

    return;

  } /* eo ConstructTFD() */ 
void NeumannBoundaryFE<TDomain>::
add(SmartPtr<CplUserData<MathVector<dim>, dim> > user, const char* BndSubsets, const char* InnerSubsets)
{
	m_vVectorData.push_back(VectorData(user, BndSubsets, InnerSubsets));
	this->add_inner_subsets(InnerSubsets);
}