00001 // -*- C++ -*- 00002 00003 #ifndef ADLIB_SOLIDPROBLEM_H 00004 #define ADLIB_SOLIDPROBLEM_H 00005 00006 00007 00008 #define OWN_ELC_COUPLED_ADLIBSOLVER 00009 00010 #include "external_coupling/AdlibStdELCCoupledProblem.h" 00011 00012 class SolidSolverSpecific : public AdlibELCCoupledSolver<DIM> { 00013 typedef AdlibELCCoupledSolver<DIM> base; 00014 public: 00015 SolidSolverSpecific(MPI_Comm solidComm, int numFluidNodes, int firstFluidNode) : 00016 base(solidComm, numFluidNodes, firstFluidNode) {} 00017 00018 virtual void ModifyELCReceiveData(elc_lagcomm_type* elcLag) { 00019 int elNumNodes = base::Boundary().bNodes; 00020 double *elPressures = base::Boundary().bPressure; 00021 for (register int n=0; n<elNumNodes; n++) 00022 if (elPressures[n] != std::numeric_limits<double>::max()) 00023 elPressures[n] -= 1.e5; 00024 } 00025 }; 00026 00027 #endif 00028