大型并行量子化学软件;支持密度泛函(DFT)。可以进行各种量子化学计算。支持CHARMM并行计算。非常具有应用价值。

源代码在线查看: object.cc

软件大小: 2014 K
上传用户: shicg666666
关键词: CHARMM DFT 化学 量子
下载地址: 免注册下载 普通下载 VIP

相关代码

				//				// object.cc				//				// Copyright (C) 1996 Limit Point Systems, Inc.				//				// Author: Curtis Janssen 				// Maintainer: LPS				//				// This file is part of the SC Toolkit.				//				// The SC Toolkit is free software; you can redistribute it and/or modify				// it under the terms of the GNU Library General Public License as published by				// the Free Software Foundation; either version 2, or (at your option)				// any later version.				//				// The SC Toolkit is distributed in the hope that it will be useful,				// but WITHOUT ANY WARRANTY; without even the implied warranty of				// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the				// GNU Library General Public License for more details.				//				// You should have received a copy of the GNU Library General Public License				// along with the SC Toolkit; see the file COPYING.LIB.  If not, write to				// the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.				//				// The U.S. Government is granted a limited license as per AL 91-7.				//								#ifdef __GNUC__				#pragma implementation				#endif								#include 				#include 				#include 				#include 								using namespace std;				using namespace sc;								static ClassDesc RenderedObject_cd(				  typeid(RenderedObject),"RenderedObject",1,"public DescribedClass",				  0, 0, 0);								RenderedObject::RenderedObject(const Ref& material):				  name_(0),				  material_(material)				{				}								RenderedObject::RenderedObject(const Ref& keyval)				{				  name_ = keyval->pcharvalue("name");				  material_ describedclassvalue("material");				  appearance_ describedclassvalue("appearance");				  transform_ describedclassvalue("transform");				}								RenderedObject::~RenderedObject()				{				  				  if (name_) delete[] name_;				}								void				RenderedObject::set_name(const char *name)				{				  delete[] name_;				  if (name) name_ = strcpy(new char[strlen(name)+1],name);				  else name_ = 0;				}								void				RenderedObject::print(ostream& os) const				{				  os 				  if (material_.nonnull()) {				      os 				    }				  if (appearance_.nonnull()) {				      os 				    }				  if (transform_.nonnull()) {				      os 				    }				  os.flush();				}				  								static ClassDesc RenderedObjectSet_cd(				  typeid(RenderedObjectSet),"RenderedObjectSet",1,"public RenderedObject",				  0, create, 0);								RenderedObjectSet::RenderedObjectSet(int capacity)				{				  capacity_ = capacity;				  n_ = 0;				  array_ = new Ref[capacity_];				}								RenderedObjectSet::RenderedObjectSet(const Ref& keyval):				  RenderedObject(keyval)				{				  capacity_ = keyval->count("objects");				  if (keyval->error() != KeyVal::OK) {				      ExEnv::errn() 				      abort();				    }				  n_ = capacity_;				  array_ = new Ref[capacity_];				  for (int i=0; i				      array_[i] describedclassvalue("objects",i);				      if (keyval->error() != KeyVal::OK) {				          ExEnv::errn() 				          abort();				        }				    }				}								RenderedObjectSet::~RenderedObjectSet()				{				  delete[] array_;				}								void				RenderedObjectSet::add(const Ref& object)				{				  if (capacity_ == n_) {				      capacity_ += 10;				      Ref *tmp = new Ref[capacity_];				      for (int i=0; i				          tmp[i] = array_[i];				        }				      delete[] array_;				      array_ = tmp;				    }				  array_[n_] = object;				  n_++;				}								void				RenderedObjectSet::render(const Ref& render)				{				  render->set(this);				}								/////////////////////////////////////////////////////////////////////////////								// Local Variables:				// mode: c++				// c-file-style: "CLJ"				// End:							

相关资源