00001 #include "mappedfevaluesbase.h"
00002
00003
00004 void MappedFEValuesBase::setPoints(const ArrayOfVecDouble &v,const VecDouble &weights)
00005 {
00006 _pts=v;
00007 _weights=weights;
00008 unsigned n_pts=v.size();
00009 _J.reinit(n_pts);
00010 _JxW.reinit(n_pts);
00011
00012 _Values.reinit(n_pts,m_n_dofs);
00013 _Grad.resize(m_n_dofs*n_pts);
00014 for (unsigned i=0;i<_Grad.size();i++)
00015 {
00016 _Grad[i].reinit(3);
00017 }
00018
00019 _Mapped_Points.resize(n_pts);
00020 for (unsigned i=0;i<_Mapped_Points.size();i++)
00021 {
00022 _Mapped_Points[i].reinit(3);
00023 }
00024
00025
00026 }
00027
00028
00029
00030 void MappedFEValuesBase::compute_points(MappingOrthoMesh &map)
00031 {
00032 VecDoubleRef pt(3);
00033
00034 for(unsigned i=0;i<_pts.size();i++)
00035 {
00036
00037 _pts.getVecValues(i,&pt);
00038
00039
00040 map.T(pt,_Mapped_Points[i]);
00041 }
00042
00043 }
00044
00045
00046 void MappedFEValuesBase::print(std::ostream &out)
00047 {
00048 Matrix &M = _pts;
00049
00050 out << "Points: \n";
00051 M.print_formatted(out,5,true,7,"0");
00052 out << "Jacobians: ";
00053 _J.print(out,5,true,true);
00054 out << "\nJacobians x W: ";
00055 _JxW.print(out,5,true,true);
00056 out<<std::endl;
00057 out << "\nPoints x Function Values:\n";
00058 _Values.print_formatted(out,5,true,7,"0");
00059
00060
00061
00062 }
00063