[pooma-dev] Problem trying to build parallel application

Jeffrey Oldham oldham at codesourcery.com
Fri May 11 18:52:48 UTC 2001


	Perhaps yesterday's patch does resolve the makeOwnCopy()
difficulty you experienced.  Will you please try it again?  I do not
know where the source code is located to test it myself.

Thanks,
Jeffrey D. Oldham
oldham at codesourcery.com

On Wed, May 09, 2001 at 02:19:58PM -0600, Dave Nystrom wrote:
> Hi Guys,
> 
> I'm trying to build a parallel version of our application under RH Linux 6.2
> using KCC-4.0d and am having compile problems.  Below is part of the build
> log.  Could someone take a look at this and see what the problem is?  I think 
> Stephen Smith might be a likely candidate.
> 
> -- 
> Dave Nystrom			email: wdn at lanl.gov
> LANL X-3			phone: 505-667-7913	fax: 505-665-3046
> 
> ---------------------------build-log-------------------------------------
> cd /usr/projects/blanca/usr/wdn/blanca_src_4.0/ApplicationsLayer/Demo/
> date; /usr/bin/time -p make RECURSE=1 PASS=MPI1 app
> 
> Setting csh aliases for Blanca source environment v 4.0 on host: mutley
> Wed May  9 12:31:34 MDT 2001
> COPYING... /usr/projects/blanca/packages/TecFramework/TecFramework_src/Main/main.cc to /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/main.cc
> 
> COMPILING... See /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/Demo_src/include/DemoPCH.o_MPI1.info
> 
> KCC -c /usr/projects/blanca/usr/wdn/blanca_src_4.0/ApplicationsLayer/Demo/Demo_src/include/DemoPCH.cc -o /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/Demo_src/include/DemoPCH.o --output_dependencies /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/Demo_src/include/DemoPCH.o.depend.mk.temp --diag_suppress 630 --create_pch /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/DEMO_MPI1.pch -DTEC_USE_DEMO -DTEC_USE_PHYSICSBETA -DTEC_USE_HYDRODYNAMICS -DTEC_USE_PHYSICSSUPPORTBETA -DTEC_USE_PHYSICSBASECLASSES -DTEC_USE_POOMA2INTEGRATION -DTEC_USE_TECFRAMEWORK -DTEC_USE_POOMA2INSTANTIATIONS -DTEC_USE_STLINSTANTIATIONS -DTEC_USE_POOMA -DTEC_USE_CHEETAH -DTEC_USE_MM -DTEC_USE_PCG -DCART_XYZ -DDOUBLE_PRECISION -DPETE -DV034 -DTEC_NEW_POOMA_COMPRESSION -DTEC_LINUX -DTEC_USING_KCC_DEFINES -DTEC_KCC_INFINITE_COMPILE_TIME -DTEC_INST -DTEC_USE_PCH -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/ApplicationsLayer/Demo -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer/PhysicsBeta -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer/Hydrodynamics -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsSupportLayer/PhysicsSupportBeta -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsSupportLayer/PhysicsBaseClasses -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/TecIntegrationLayer/Pooma2Integration -I/usr/projects/blanca/packages/TecFramework -I/usr/projects/blanca/packages/BlancaInstantiations/Pooma2Instantiations -I/usr/projects/blanca/packages/BlancaInstantiations/STLInstantiations -I/usr/projects/blanca/packages/PoomaII/r2/src -I/usr/projects/blanca/packages/PoomaII/r2/lib/LINUX_KCC_DEBUG_CHEETAH_NOEX -I/usr/projects/blanca/packages/Cheetah/cheetah-1.0.0/src -I/usr/projects/blanca/packages/Cheetah/cheetah-1.0.0/lib/LINUX_KCC_DEBUG_NOEX -I/home/wdn/packages/mpich-1.2.1/include -I/usr/projects/blanca/packages/mm-1.1.1/include -I/usr/projects/blanca/packages/pcg/pcg_f77 --display_error_number -fpic --strict -D__KAI_STRICT --diag_suppress 450 --no_exceptions +K0 --no_kdebug
> 
> "/usr/projects/blanca/usr/wdn/blanca_src_4.0/ApplicationsLayer/Demo/Demo_src/include/DemoPCH.cc": creating precompiled header file "/scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/DEMO_MPI1.pch"
> real 26.25
> user 14.68
> sys 4.94
> 
> Done compiling /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/Demo_src/include/DemoPCH.o
> 
> COMPILING... See /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/main.o_MPI1.info
> 
> KCC -c /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/main.cc -o /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/main.o --output_dependencies /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/main.o.depend.mk.temp --diag_suppress 630 --COMPDO_fe_cc2c --pch_ignore_dir --use_pch /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/DEMO_MPI1.pch -DTEC_USE_DEMO -DTEC_USE_PHYSICSBETA -DTEC_USE_HYDRODYNAMICS -DTEC_USE_PHYSICSSUPPORTBETA -DTEC_USE_PHYSICSBASECLASSES -DTEC_USE_POOMA2INTEGRATION -DTEC_USE_TECFRAMEWORK -DTEC_USE_POOMA2INSTANTIATIONS -DTEC_USE_STLINSTANTIATIONS -DTEC_USE_POOMA -DTEC_USE_CHEETAH -DTEC_USE_MM -DTEC_USE_PCG -DCART_XYZ -DDOUBLE_PRECISION -DPETE -DV034 -DTEC_NEW_POOMA_COMPRESSION -DTEC_LINUX -DTEC_USING_KCC_DEFINES -DTEC_KCC_INFINITE_COMPILE_TIME -DTEC_INST -DTEC_USE_PCH -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/ApplicationsLayer/Demo -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer/PhysicsBeta -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer/Hydrodynamics -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsSupportLayer/PhysicsSupportBeta -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsSupportLayer/PhysicsBaseClasses -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/TecIntegrationLayer/Pooma2Integration -I/usr/projects/blanca/packages/TecFramework -I/usr/projects/blanca/packages/BlancaInstantiations/Pooma2Instantiations -I/usr/projects/blanca/packages/BlancaInstantiations/STLInstantiations -I/usr/projects/blanca/packages/PoomaII/r2/src -I/usr/projects/blanca/packages/PoomaII/r2/lib/LINUX_KCC_DEBUG_CHEETAH_NOEX -I/usr/projects/blanca/packages/Cheetah/cheetah-1.0.0/src -I/usr/projects/blanca/packages/Cheetah/cheetah-1.0.0/lib/LINUX_KCC_DEBUG_NOEX -I/home/wdn/packages/mpich-1.2.1/include -I/usr/projects/blanca/packages/mm-1.1.1/include -I/usr/projects/blanca/packages/pcg/pcg_f77 --display_error_number -fpic --strict -D__KAI_STRICT --diag_suppress 450 --no_exceptions +K0 --no_kdebug
> 
> real 12.92
> user 4.74
> sys 0.56
> 
> Done compiling /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/main.o
> 
> .........Stuff Deleted............
> 
> KCC -o /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/libhydrodynamics.so --COMPO_ln -Wl,-noinhibit-exec --no_exceptions --parallel_build 1 /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/Hydrodynamics_src/HydrodynamicsGroup.o /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/Hydrodynamics_src/CompatibleHydro/SymmetryRelations.o /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/Hydrodynamics_src/CompatibleHydro/CompatibleRelations.o /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/Hydrodynamics_src/CompatibleHydro/Commands/LagRadialVelocity.o /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/Hydrodynamics_src/CompatibleHydro/Commands/SetBrickCoordinates.o /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/Hydrodynamics_src/CompatibleHydro/Commands/SetFieldValues.o /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/Hydrodynamics_src/CompatibleHydro/Commands/SetVertexPoints.o /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/Hydrodynamics_src/EOS/GammaLaw.o /scratch/wdn/obj_4.0/PHYSICSSUPPORTBETA/LINUX_KCC_CART_XYZ_MPI/libphysicssupportbeta.so /scratch/wdn/obj_4.0/PHYSICSBASECLASSES/LINUX_KCC_CART_XYZ_MPI/libphysicsbaseclasses.so /scratch/wdn/obj_4.0/POOMA2INTEGRATION/LINUX_KCC_CART_XYZ_MPI/libpooma2integration.so /usr/projects/blanca/packages/TecFramework/lib/TECFRAMEWORK/LINUX_KCC_DEBUG_SHARED_NOEX/libtecframework.so /usr/projects/blanca/packages/BlancaInstantiations/Pooma2Instantiations/lib/POOMA2INSTANTIATIONS/LINUX_KCC_DEBUG_CHEETAH_SHARED_NOEX/libpooma2instantiations.so /usr/projects/blanca/packages/BlancaInstantiations/STLInstantiations/lib/STLINSTANTIATIONS/LINUX_KCC_DEBUG_SHARED_NOEX/libstlinstantiations.so /usr/projects/blanca/packages/PoomaII/r2/lib/LINUX_KCC_DEBUG_CHEETAH_NOEX/libpooma.a
> 
> 	cd "/home/wdn/blanca/usr/wdn/blanca_src_4.0/ApplicationsLayer/Demo"
> "/usr/projects/blanca/packages/PoomaII/r2/src/Engine/MultiPatchEngine.cpp", line 252: error #135: 
>           class "Engine<1, poomalote::Real, Remote<CompressibleBrick>>" has no
>           member "makeOwnCopy"
>       data()[i].makeOwnCopy();
>                 ^
>           detected during:
>             instantiation of "Engine<Dim, T, MultiPatch<LayoutTag,
>                       PatchTag>>::Engine_t &Engine<Dim, T,
>                       MultiPatch<LayoutTag, PatchTag>>::makeOwnCopy() [with
>                       Dim=1, T=poomalote::Real, LayoutTag=GridTag,
>                       PatchTag=Remote<CompressibleBrick>]" at line 482 of
>                       "/usr/projects/blanca/packages/PoomaII/r2/src/NewField/Fi
>                       eldEngine/FieldEngineBase.h"
>             instantiation of "void FieldEngineBase<Dim, T,
>                       EngineTag>::makeOwnCopy(const Subject &) [with Dim=1,
>                       T=poomalote::Real,
>                       EngineTag=poomalote::ModelTraits<poomalote::OneDF<poomalo
>                       te::DefaultTraits>>::EngineTag,
>                       Subject=Field<poomalote::ModelTraits<poomalote::OneDF<poo
>                       malote::DefaultTraits>>::MeshTag, poomalote::Real,
>                       poomalote::ModelTraits<poomalote::OneDF<poomalote::Defaul
>                       tTraits>>::EngineTag>]" at line 983 of
>                       "/usr/projects/blanca/packages/PoomaII/r2/src/NewField/Fi
>                       eld.h"
>             instantiation of "void Field<GeometryTag, T,
>                       EngineTag>::makeOwnCopy() [with
>                       GeometryTag=poomalote::ModelTraits<poomalote::OneDF<pooma
>                       lote::DefaultTraits>>::MeshTag, T=poomalote::Real,
>                       EngineTag=poomalote::ModelTraits<poomalote::OneDF<poomalo
>                       te::DefaultTraits>>::EngineTag]" at line 69 of
>                       "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsSuppo
>                       rtLayer/PhysicsBaseClasses/PhysicsBaseClasses_src/HelperC
>                       lasses/MMField.t.hh"
>             instantiation of "void
>                       PhysicsBaseClasses::matMMWeightedAverage(const Field<G1,
>                       T1, E1> &, const Field<MeshTag, poomalote::Real,
>                       EngineTag> &, const Field<G1, T1, E1> &, bool) [with
>                       MeshTag=poomalote::ModelTraits<poomalote::OneDF<poomalote
>                       ::DefaultTraits>>::MeshTag, T=poomalote::Real,
>                       EngineTag=poomalote::ModelTraits<poomalote::OneDF<poomalo
>                       te::DefaultTraits>>::EngineTag]" at line 579 of
>                       "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer
>                       /Hydrodynamics/Hydrodynamics_src/CompatibleHydro/Compatib
>                       leRelations.t.hh"
>             instantiation of "void
>                       Hydrodynamics::CompatibleRelations<Traits>::calcAvgQuanti
>                       ty(const
>                       Hydrodynamics::CompatibleRelations<Traits>::ScalarField
>                       &, const
>                       Hydrodynamics::CompatibleRelations<Traits>::ScalarField
>                       &, const
>                       Hydrodynamics::CompatibleRelations<Traits>::ScalarField
>                       &) [with
>                       Traits=poomalote::OneDF<poomalote::DefaultTraits>]" 
> 
> "/usr/projects/blanca/packages/PoomaII/r2/src/Engine/MultiPatchEngine.cpp", line 252: error #135: 
>           class "Engine<2, poomalote::Real, Remote<CompressibleBrick>>" has no
>           member "makeOwnCopy"
>       data()[i].makeOwnCopy();
>                 ^
>           detected during:
>             instantiation of "Engine<Dim, T, MultiPatch<LayoutTag,
>                       PatchTag>>::Engine_t &Engine<Dim, T,
>                       MultiPatch<LayoutTag, PatchTag>>::makeOwnCopy() [with
>                       Dim=2, T=poomalote::Real, LayoutTag=GridTag,
>                       PatchTag=Remote<CompressibleBrick>]" at line 482 of
>                       "/usr/projects/blanca/packages/PoomaII/r2/src/NewField/Fi
>                       eldEngine/FieldEngineBase.h"
>             instantiation of "void FieldEngineBase<Dim, T,
>                       EngineTag>::makeOwnCopy(const Subject &) [with Dim=2,
>                       T=poomalote::Real,
>                       EngineTag=poomalote::ModelTraits<poomalote::TwoDF<poomalo
>                       te::DefaultTraits>>::EngineTag,
>                       Subject=Field<poomalote::ModelTraits<poomalote::TwoDF<poo
>                       malote::DefaultTraits>>::MeshTag, poomalote::Real,
>                       poomalote::ModelTraits<poomalote::TwoDF<poomalote::Defaul
>                       tTraits>>::EngineTag>]" at line 983 of
>                       "/usr/projects/blanca/packages/PoomaII/r2/src/NewField/Fi
>                       eld.h"
>             instantiation of "void Field<GeometryTag, T,
>                       EngineTag>::makeOwnCopy() [with
>                       GeometryTag=poomalote::ModelTraits<poomalote::TwoDF<pooma
>                       lote::DefaultTraits>>::MeshTag, T=poomalote::Real,
>                       EngineTag=poomalote::ModelTraits<poomalote::TwoDF<poomalo
>                       te::DefaultTraits>>::EngineTag]" at line 69 of
>                       "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsSuppo
>                       rtLayer/PhysicsBaseClasses/PhysicsBaseClasses_src/HelperC
>                       lasses/MMField.t.hh"
>             instantiation of "void
>                       PhysicsBaseClasses::matMMWeightedAverage(const Field<G1,
>                       T1, E1> &, const Field<MeshTag, poomalote::Real,
>                       EngineTag> &, const Field<G1, T1, E1> &, bool) [with
>                       MeshTag=poomalote::ModelTraits<poomalote::TwoDF<poomalote
>                       ::DefaultTraits>>::MeshTag, T=poomalote::Real,
>                       EngineTag=poomalote::ModelTraits<poomalote::TwoDF<poomalo
>                       te::DefaultTraits>>::EngineTag]" at line 579 of
>                       "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer
>                       /Hydrodynamics/Hydrodynamics_src/CompatibleHydro/Compatib
>                       leRelations.t.hh"
>             instantiation of "void
>                       Hydrodynamics::CompatibleRelations<Traits>::calcAvgQuanti
>                       ty(const
>                       Hydrodynamics::CompatibleRelations<Traits>::ScalarField
>                       &, const
>                       Hydrodynamics::CompatibleRelations<Traits>::ScalarField
>                       &, const
>                       Hydrodynamics::CompatibleRelations<Traits>::ScalarField
>                       &) [with
>                       Traits=poomalote::TwoDF<poomalote::DefaultTraits>]" 
> 
> "/usr/projects/blanca/packages/PoomaII/r2/src/Engine/MultiPatchEngine.cpp", line 252: error #135: 
>           class "Engine<3, poomalote::Real, Remote<CompressibleBrick>>" has no
>           member "makeOwnCopy"
>       data()[i].makeOwnCopy();
>                 ^
>           detected during:
>             instantiation of "Engine<Dim, T, MultiPatch<LayoutTag,
>                       PatchTag>>::Engine_t &Engine<Dim, T,
>                       MultiPatch<LayoutTag, PatchTag>>::makeOwnCopy() [with
>                       Dim=3, T=poomalote::Real, LayoutTag=GridTag,
>                       PatchTag=Remote<CompressibleBrick>]" at line 482 of
>                       "/usr/projects/blanca/packages/PoomaII/r2/src/NewField/Fi
>                       eldEngine/FieldEngineBase.h"
>             instantiation of "void FieldEngineBase<Dim, T,
>                       EngineTag>::makeOwnCopy(const Subject &) [with Dim=3,
>                       T=poomalote::Real,
>                       EngineTag=poomalote::ModelTraits<poomalote::ThreeDF<pooma
>                       lote::DefaultTraits>>::EngineTag,
>                       Subject=Field<poomalote::ModelTraits<poomalote::ThreeDF<p
>                       oomalote::DefaultTraits>>::MeshTag, poomalote::Real,
>                       poomalote::ModelTraits<poomalote::ThreeDF<poomalote::Defa
>                       ultTraits>>::EngineTag>]" at line 983 of
>                       "/usr/projects/blanca/packages/PoomaII/r2/src/NewField/Fi
>                       eld.h"
>             instantiation of "void Field<GeometryTag, T,
>                       EngineTag>::makeOwnCopy() [with
>                       GeometryTag=poomalote::ModelTraits<poomalote::ThreeDF<poo
>                       malote::DefaultTraits>>::MeshTag, T=poomalote::Real,
>                       EngineTag=poomalote::ModelTraits<poomalote::ThreeDF<pooma
>                       lote::DefaultTraits>>::EngineTag]" at line 69 of
>                       "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsSuppo
>                       rtLayer/PhysicsBaseClasses/PhysicsBaseClasses_src/HelperC
>                       lasses/MMField.t.hh"
>             instantiation of "void
>                       PhysicsBaseClasses::matMMWeightedAverage(const Field<G1,
>                       T1, E1> &, const Field<MeshTag, poomalote::Real,
>                       EngineTag> &, const Field<G1, T1, E1> &, bool) [with
>                       MeshTag=poomalote::ModelTraits<poomalote::ThreeDF<poomalo
>                       te::DefaultTraits>>::MeshTag, T=poomalote::Real,
>                       EngineTag=poomalote::ModelTraits<poomalote::ThreeDF<pooma
>                       lote::DefaultTraits>>::EngineTag]" at line 579 of
>                       "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer
>                       /Hydrodynamics/Hydrodynamics_src/CompatibleHydro/Compatib
>                       leRelations.t.hh"
>             instantiation of "void
>                       Hydrodynamics::CompatibleRelations<Traits>::calcAvgQuanti
>                       ty(const
>                       Hydrodynamics::CompatibleRelations<Traits>::ScalarField
>                       &, const
>                       Hydrodynamics::CompatibleRelations<Traits>::ScalarField
>                       &, const
>                       Hydrodynamics::CompatibleRelations<Traits>::ScalarField
>                       &) [with
>                       Traits=poomalote::ThreeDF<poomalote::DefaultTraits>]" 
> 
> 3 errors detected in the compilation of "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer/Hydrodynamics/Hydrodynamics_src/CompatibleHydro/CompatibleRelations.cc".
> driver: Compilation failed.
> 	Recompiling /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/Hydrodynamics_src/CompatibleHydro/CompatibleRelations.o
> Error: Unable to recompile /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/Hydrodynamics_src/CompatibleHydro/CompatibleRelations.o.
> Command exited with non-zero status 2
> real 279.50
> user 0.28
> sys 0.01
> mv: /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/libhydrodynamics.so: No such file or directory
> make[1]: *** [/scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/libhydrodynamics.so] Error 1
> make: *** [/scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/libhydrodynamics.so] Error 2
> Command exited with non-zero status 2
> real 5983.14
> user 2052.11
> sys 160.74
> 
> Compilation exited abnormally with code 2 at Wed May  9 14:11:17

-- 
Jeffrey D. Oldham
oldham at codesourcery.com
-------------- next part --------------
Index: Array/Array.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/Array/Array.h,v
retrieving revision 1.139
diff -c -p -r1.139 Array.h
*** Array/Array.h	2001/04/20 21:16:23	1.139
--- Array/Array.h	2001/05/11 02:37:11
***************
*** 29,34 ****
--- 29,35 ----
  //-----------------------------------------------------------------------------
  // Classes: 
  //   Array
+ //   View0
  //   View[1-7]<Array,various domains>
  //   LeafFunctor<Array, DomainFunctorTag>
  //   LeafFunctor<Array, ViewFunctorTag<Domain> >
*************** public:
*** 1763,1773 ****
    inline Domain_t domain() const 
      {
        return engine_m.domain();
-     }
- 
-   inline Domain_t innerDomain() const 
-     {
-       return engine_m.innerDomain();
      }
  
    inline Domain_t physicalDomain() const 
--- 1764,1769 ----
Index: Engine/CompressibleBlock.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/Engine/CompressibleBlock.h,v
retrieving revision 1.27
diff -c -p -r1.27 CompressibleBlock.h
*** Engine/CompressibleBlock.h	2000/07/11 22:13:00	1.27
--- Engine/CompressibleBlock.h	2001/05/11 02:37:13
*************** private:
*** 531,541 ****
      
      CompressibleBlockController(const CompressibleBlockController& model)
        : Observable<T*>(ptr_m),
-         size_m(model.size_m),
          compressible_m(!Pooma::neverCompress()),
          dataObject_m(model.dataObject_m.affinity()), 
! 	ucOffset_m(model.ucOffset_m),
! 	viewcount_m(0)
      {
        // Lock the model while we get information pertaining to it
        // being compressed or not (such data can't be initialized in
--- 531,541 ----
      
      CompressibleBlockController(const CompressibleBlockController& model)
        : Observable<T*>(ptr_m),
          compressible_m(!Pooma::neverCompress()),
+ 	viewcount_m(0),
          dataObject_m(model.dataObject_m.affinity()), 
!         size_m(model.size_m),
! 	ucOffset_m(model.ucOffset_m)
      {
        // Lock the model while we get information pertaining to it
        // being compressed or not (such data can't be initialized in
Index: Engine/CompressibleBrick.cpp
===================================================================
RCS file: /home/pooma/Repository/r2/src/Engine/CompressibleBrick.cpp,v
retrieving revision 1.24
diff -c -p -r1.24 CompressibleBrick.cpp
*** Engine/CompressibleBrick.cpp	2000/07/11 23:06:40	1.24
--- Engine/CompressibleBrick.cpp	2001/05/11 02:37:13
*************** Engine(const Engine<Dim,T,CompressibleBr
*** 501,506 ****
--- 501,542 ----
  
  //-----------------------------------------------------------------------------
  //
+ // Engine<Dim,T,CompressibleBrickView> & makeOwnCopy()
+ //
+ // Causes the CompressibleBrickView-Engine to obtain a private copy of the data
+ // that it refers to.
+ //
+ //-----------------------------------------------------------------------------
+ 
+ template <int Dim, class T>
+ Engine<Dim,T,CompressibleBrickView> &Engine<Dim,T,CompressibleBrickView>::makeOwnCopy()
+ {
+   // JIM: This is probably not thread safe??? 
+   // There is a race from checking isShared to getting into cblock's
+   // makeOwnCopy, which is thread safe. As a result, this should only
+   // be called after a blockAndEvaluate() to ensure that nobody else
+   // is messing with the underlying CBC while this is
+   // occuring. (Logically, this is necessary anyway since you probably
+   // want a copy of the data that results from all previous
+   // computations having taken place.)  Also, as mentioned elsewhere,
+   // the current implementation results in copying uncompressed data
+   // in the parse thread, which will result in incorrect memory
+   // affinity.
+   
+   if (cblock_m.isControllerValidUnlocked() && cblock_m.isShared()) 
+     {
+       cblock_m.detach(this);
+       cblock_m.makeOwnCopy();
+       cblock_m.attach(this);
+ 
+       data0_m = cblock_m.data() + (cblock_m.compressed() ? 0 : baseOffset());
+     }
+ 
+   return *this;
+ }
+ 
+ //-----------------------------------------------------------------------------
+ //
  // Engine<Dim, T, CompressibleBrickView>::
  // elementsCompressed() const
  //
Index: Engine/CompressibleBrick.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/Engine/CompressibleBrick.h,v
retrieving revision 1.67
diff -c -p -r1.67 CompressibleBrick.h
*** Engine/CompressibleBrick.h	2000/07/11 23:06:40	1.67
--- Engine/CompressibleBrick.h	2001/05/11 02:37:14
*************** public:
*** 237,242 ****
--- 237,250 ----
  
    inline Layout_t layout() const { return Layout_t(domain_m); }
  
+   //---------------------------------------------------------------------------
+   // Return the domain and base domain.
+ 
+   inline const Domain_t &domain() const
+   {
+     return layout().domain();
+   }
+ 
    // Get a private copy of data viewed by this Engine.
  
    Engine_t &makeOwnCopy();
*************** public:
*** 557,562 ****
--- 565,582 ----
    ElementRef_t operator()(const Loc<Dim> &) const;
    Element_t read(const Loc<Dim> &) const;
    
+   //---------------------------------------------------------------------------
+   // Return the domain and base domain.
+ 
+   inline const Domain_t &domain() const
+   {
+     return Layout_t(domain_m).domain();
+   }
+ 
+   // Get a private copy of data viewed by this Engine.
+ 
+   Engine_t &makeOwnCopy();
+ 
    // Return the block controller (uncompressed). 
    // See comments in CompressibleBrick above.
    
*************** struct NewEngine<Engine<Dim,T,Compressib
*** 801,806 ****
--- 821,831 ----
  template <int Dim, class T>
  struct ElementProperties<Engine<Dim, T, CompressibleBrick> > 
    : public MakeOwnCopyProperties<Engine<Dim, T, CompressibleBrick> >
+ { };
+ 
+ template <int Dim, class T>
+ struct ElementProperties<Engine<Dim, T, CompressibleBrickView> > 
+   : public MakeOwnCopyProperties<Engine<Dim, T, CompressibleBrickView> >
  { };
  
  
Index: Layout/Node.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/Layout/Node.h,v
retrieving revision 1.35
diff -c -p -r1.35 Node.h
*** Layout/Node.h	2001/05/04 15:41:28	1.35
--- Layout/Node.h	2001/05/11 02:37:15
*************** public:
*** 121,128 ****
    Node(const Domain_t &owned, const AllocatedDomain_t &allocated, 
         Context_t c, ID_t gid, ID_t lid = (-1))
      : domain_m(owned), allocated_m(allocated), 
!       context_m(c), global_m(gid), local_m(lid),
!       affinity_m(-1)
    {
      PAssert(owned.size() >= 0);
      PAssert(allocated.size() >= 0);
--- 121,128 ----
    Node(const Domain_t &owned, const AllocatedDomain_t &allocated, 
         Context_t c, ID_t gid, ID_t lid = (-1))
      : domain_m(owned), allocated_m(allocated), 
!       local_m(lid), global_m(gid),
!       context_m(c), affinity_m(-1)
    {
      PAssert(owned.size() >= 0);
      PAssert(allocated.size() >= 0);
*************** public:
*** 130,137 ****
    }
  
    Node(const Domain_t &d, Context_t c, ID_t gid, ID_t lid = (-1))
!     : domain_m(d), allocated_m(d), context_m(c), global_m(gid), local_m(lid),
!       affinity_m(-1)
    {
      PAssert(d.size() >= 0);
      PAssert(gid >= 0);
--- 130,138 ----
    }
  
    Node(const Domain_t &d, Context_t c, ID_t gid, ID_t lid = (-1))
!     : domain_m(d), allocated_m(d),
!       local_m(lid), global_m(gid),
!       context_m(c), affinity_m(-1)
    {
      PAssert(d.size() >= 0);
      PAssert(gid >= 0);
*************** public:
*** 152,159 ****
  
    Node(int affinity, const Domain_t &d,
         Context_t c, ID_t gid, ID_t lid = (-1))
!     : domain_m(d), allocated_m(d), context_m(c), global_m(gid), local_m(lid),
!       affinity_m(affinity)
    {
      PAssert(d.size() >= 0);
      PAssert(gid >= 0);
--- 153,161 ----
  
    Node(int affinity, const Domain_t &d,
         Context_t c, ID_t gid, ID_t lid = (-1))
!     : domain_m(d), allocated_m(d),
!       local_m(lid), global_m(gid),
!       context_m(c), affinity_m(affinity)
    {
      PAssert(d.size() >= 0);
      PAssert(gid >= 0);
*************** public:
*** 172,180 ****
    
    template<class ODom, class OAlloc>
    Node(const Node<ODom,OAlloc> &n)
!     : domain_m(n.domain()), context_m(n.context()), allocated_m(n.allocated()),
!       global_m(n.globalID()), local_m(n.localID()),
!       affinity_m(n.affinity())
    {
    }
  
--- 174,182 ----
    
    template<class ODom, class OAlloc>
    Node(const Node<ODom,OAlloc> &n)
!     : domain_m(n.domain()), allocated_m(n.allocated()),
!       local_m(n.localID()), global_m(n.globalID()),
!       context_m(n.context()), affinity_m(n.affinity())
    {
    }
  
Index: NewField/FieldEngine/FieldEngine.NoGeometry.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/NewField/FieldEngine/FieldEngine.NoGeometry.h,v
retrieving revision 1.4
diff -c -p -r1.4 FieldEngine.NoGeometry.h
*** NewField/FieldEngine/FieldEngine.NoGeometry.h	2001/04/10 23:13:25	1.4
--- NewField/FieldEngine/FieldEngine.NoGeometry.h	2001/05/11 02:37:15
*************** public:
*** 254,267 ****
    // This field-engine always has vert-centering and the total domain is
    // given by the engine.
          
!   inline const Domain_t &physicalCellDomain() const
      {
!       return shrink(physicalDomain(), 1);
      }
          
    inline Domain_t totalCellDomain() const
      {
!       return shrink(engine_m.domain(), 1);
      }
  
    Domain_t physicalDomain() const
--- 254,267 ----
    // This field-engine always has vert-centering and the total domain is
    // given by the engine.
          
!   inline const Domain_t physicalCellDomain() const
      {
!       return shrinkRight(physicalDomain(), 1);
      }
          
    inline Domain_t totalCellDomain() const
      {
!       return shrinkRight(engine_m.domain(), 1);
      }
  
    Domain_t physicalDomain() const


More information about the pooma-dev mailing list