Thanks, John, but I don't think it's just the print error, because if I comment the std::cout sentence, the error message is the same. It seems that Parameters only can hold basic values like int or Real, not the compound type like vector. If it is so, I must transfer the vector to other functions as an actual parameter besides equation_systems and system_name.
2011/4/15 John Peterson <[email protected]> > 2011/4/13 蔡园武 <[email protected]>: > > I have faced some problems in my code, and need your help. > > > > 1. I see that the user can pass parameters into equation_systems, so they > > can be retrieved in other functions. But when I want to pass a vector or > > matrix, it won't work: > > > > std::vector<Number> & EDA = > > equation_systems.parameters.set<std::vector<Number> > ("ElemDensity"); > > const unsigned int NElem = mesh.n_elem(); > > EDA.resize(NElem); > > for (unsigned int i = 0; i < NElem; i++) { > > EDA[i] = 1.0; > > std::cout << EDA[i] << std::endl; > > } > > > > Where am I wrong? How can I achieve my purpose? > > Are you seeing a compiler error or runtime error? On my system, > attempting to put std::vectors into a Parameters object gives a > compile error: > > in void libMesh::Parameters::Parameter<T>::print(std::ostream&) > parameters.h:280: error: no match for 'operator<<' in 'os <<(...)' > > Since you can't print a vector this way. This seems like an > unnecessary limitation on the Parameters class, we could possibly fix > it by specializing Parameter<T>::print(ostream&) for vector<T> but I > don't have the time to or any desire mess with that at the moment. > > -- > John > -- Cai Yuanwu 蔡园武 Dept. of Engineering Mechanics, Dalian University of Technology, Dalian 116024, China ------------------------------------------------------------------------------ Benefiting from Server Virtualization: Beyond Initial Workload Consolidation -- Increasing the use of server virtualization is a top priority.Virtualization can reduce costs, simplify management, and improve application availability and disaster protection. Learn more about boosting the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev _______________________________________________ Libmesh-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-users
