00001 #include <DiscontinuousLagrangeFE.h> 00002 #include <ElementComputations.h> 00003 00004 DiscontinuousLagrangeFE:: DiscontinuousLagrangeFE() : LagrangeFE() { 00005 element = 0; 00006 } 00007 00008 int DiscontinuousLagrangeFE:: nbf() { 00009 return StandardFE::nbf(); 00010 } 00011 00012 void DiscontinuousLagrangeFE:: compute_basis_functions() { 00013 LagrangeFE:: compute_basis_functions(); 00014 for (int i=0; i< dofs.size(); i++) { 00015 dofs[i] = GiNaC::lst(dofs[i], element); 00016 } 00017 } 00018 00019 00020 00021 void DiscontinuousLagrangeFE:: set(Polygon& p_) { 00022 StandardFE::set(p_); 00023 } 00024 00025 void DiscontinuousLagrangeFE:: set_element_number(int element_) { 00026 element = element_; 00027 } 00028 00029 void DiscontinuousLagrangeFE:: set(int order_) { 00030 StandardFE::set(order_); 00031 } 00032 00033 00034 GiNaC::ex DiscontinuousLagrangeFE:: dof(int i) { 00035 return StandardFE::dof(i); 00036 } 00037 00038 00039 GiNaC::ex DiscontinuousLagrangeFE::N(int i) { 00040 return StandardFE::N(i); 00041 } 00042 00043 // ------------VectorDiscontinuousLagrangeFE --- 00044 00045 VectorDiscontinuousLagrangeFE:: VectorDiscontinuousLagrangeFE() : 00046 VectorLagrangeFE() { 00047 element = 0; 00048 } 00049 00050 00051 int VectorDiscontinuousLagrangeFE:: nbf() { 00052 return StandardFE::nbf(); 00053 } 00054 00055 void VectorDiscontinuousLagrangeFE:: compute_basis_functions(){ 00056 VectorLagrangeFE:: compute_basis_functions(); 00057 for (int i=0; i< dofs.size(); i++) { 00058 dofs[i] = GiNaC::lst(dofs[i], element); 00059 } 00060 00061 } 00062 00063 00064 void VectorDiscontinuousLagrangeFE:: set_size(int size_) { 00065 size = size_; 00066 } 00067 00068 00069 void VectorDiscontinuousLagrangeFE:: set(Polygon& p_) { 00070 StandardFE::set(p_); 00071 } 00072 00073 00074 void VectorDiscontinuousLagrangeFE:: set(int order_) { 00075 StandardFE::set(order_); 00076 } 00077 00078 00079 GiNaC::ex VectorDiscontinuousLagrangeFE:: dof(int i) { 00080 return StandardFE::dof(i); 00081 } 00082 00083 00084 GiNaC::ex VectorDiscontinuousLagrangeFE::N(int i) { 00085 return StandardFE::N(i); 00086 } 00087 00088 void VectorDiscontinuousLagrangeFE:: set_element_number(int element_) { 00089 element = element_; 00090 } 00091 00092 00093 00094 00095