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); }